Es gibt zwei Befehle zum Ändern von Dateinamen in Linux: 1. mv-Befehl, der Dateien umbenennen und Dateien oder Ordner verschieben kann. 2. Befehl zum Umbenennen Dateinamen können durch String-Ersetzung stapelweise geändert werden. Die Syntax lautet „[Parameter] alten Dateinamen umbenennen, neuer Dateiname“.
Die Betriebsumgebung dieses Tutorials: CentOS 6-System, Dell G3-Computer.
Um Dateien oder Verzeichnisse unter Linux umzubenennen, können Sie den Befehl mv oder den Befehl rename verwenden. Hier erfahren Sie, wie Sie beide verwenden.
1. Verwenden Sie den Befehl mv
Der Befehl mv kann Dateien oder Ordner sowohl umbenennen als auch verschieben.
mv [参数] 旧文件/目录 新文件名/目录
Beispiel: Verzeichnis A in B umbenennen
mv A B
Beispiel: Verschieben Sie das Verzeichnis /a nach /b und benennen Sie es in c um
mv /a /b/c
Um eine Datei oder ein Verzeichnis im Textmodus umzubenennen, verwenden Sie einfach mv. Verwenden Sie einfach die Wenn Sie beispielsweise eine Datei mit dem Namen abc in 1234 umbenennen möchten:
mv abc 1234
Beachten Sie, dass eine Datei mit dem Namen 1234 diese überschreibt.
Wie benenne ich mehrere Dateien mit dem Befehl mv um? Der Befehl
mv kann jeweils nur eine Datei umbenennen, er kann jedoch mit anderen Befehlen wie „find“ in einer Bash-for- oder while-Schleife verwendet werden, um mehrere Dateien umzubenennen.
Beispiel: So ändern Sie die .html-Erweiterung in .php, indem Sie eine Bash-for-Schleife verwenden, um alle .html-Dateien im aktuellen Verzeichnis umzubenennen.
for f in *.html; do mv -- "$f" "${f%.html}.php" done
Lassen Sie uns den Code Zeile für Zeile analysieren:
●Die erste Zeile erstellt eine for-Schleife und durchläuft eine Liste aller Dateien.html.
● Die zweite Zeile gilt für jedes Element in der Liste und verschiebt die Datei in eine neue und ersetzt .html durch .php. Der Abschnitt ${file%.html} verwendet die Shell-Parametererweiterung .html, um den Teil aus dem Dateinamen zu entfernen.
● done zeigt das Ende des Schleifensegments an.
Wir können den Befehl find auch in Kombination mit mv verwenden, um die gleiche Funktion wie oben zu erreichen.
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
Der Befehl find verwendet diesen Schalter, um alle .html-Dateien, die im aktuellen Verzeichnis mv enden, nacheinander an den Befehl -exec zu übergeben. Die Zeichenfolge {} ist der Name der Datei, die gerade verarbeitet wird.
Wie Sie dem obigen Beispiel entnehmen können, ist das Umbenennen mehrerer Dateien mit dem Befehl mv keine leichte Aufgabe, da hierfür gute Kenntnisse der Bash-Skripterstellung erforderlich sind.
2. Verwenden Sie den Umbenennungsbefehl
Der Umbenennungsbefehl verwendet String-Ersetzung, um Dateinamen stapelweise zu ändern. „Eine einzelne Datei umbenennen.“ o foo0 foo ? benennt die Dateien von foo1 in foo9 in foo01 in foo09 um. Bei den umbenannten Dateien handelt es sich nur um Dateien mit einem 4-stelligen Namen, und foo im Dateinamen wird durch foo0 ersetzt.
rename foo foo0 foo??
verwenden, werden alle Dateien von foo01 bis foo99 in foo001 bis foo099 umbenannt, nur Dateien mit 5 Zeichen langen Namen werden umbenannt und foo in der Datei Der Name wird durch foo0 ersetzt. Wenn Sie rename foo foo0 foo*
verwenden, werden alle Dateien von foo001 bis foo278 in foo0001 bis foo0278 umbenannt, und alle Dateien, die mit foo beginnen, werden umbenannt.
rename foo0 foo foo0[2]*
verwenden, werden alle Dateien von foo0200 bis foo0278 in foo200 bis foo278 umbenannt und foo0 im Dateinamen wird durch foo ersetzt. rename unterstützt reguläre Ausdrücke
# 将main1.c重命名为main.c rename main1.c main.c main1.c
Standardmäßig überschreibt der Befehl zum Umbenennen keine vorhandenen Dateien; die Übergabe des Parameters -f ermöglicht jedoch das Überschreiben vorhandener Dateien.
? 可替代单个字符 * 可替代多个字符 [charset] 可替代charset集中的任意单个字符
rename foo foo0 foo?
,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。
如果使用rename foo foo0 foo??
,foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。
如果使用rename foo foo0 foo*
,foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名。
如果使用rename foo0 foo foo0[2]*
# 把文件名中的AA替换成aa rename "s/AA/aa/" * # 把.html 后缀的改成 .php后缀 rename "s//.html//.php/" * # 把所有的文件名都以txt结尾 rename "s/$//.txt/" * # 把所有以.txt结尾的文件名的.txt删掉 rename "s//.txt//" *
rename -f 's/.html/.php/' *.html
rename 'y/ /_/' *
Das obige ist der detaillierte Inhalt vonWas ist der Befehl zum Ändern des Dateinamens unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!