Linux / Wie man eine Datei oder ein Verzeichnis umbenennt
Um eine Datei oder ein Verzeichnis in Linux umzubenennen, geben Sie den vorhandenen Pfad und den neuen Pfad der Reihe nach mit dem mv-Befehl an. Wenn der Zielname bereits existiert, kann er überschrieben werden oder die Quelle an einen unerwarteten Ort verschoben werden, daher sollte dies vor der Ausführung überprüft werden.
Grundformat zum Umbenennen
Der mv, der in diesem Leitfaden zum Verschieben von Dateien mit mv verwendet wird, wird auch zum Umbenennen verwendet. Wenn sich die beiden Pfade im selben Verzeichnis befinden, ändert sich nur der Name, und wenn sie sich in verschiedenen Verzeichnissen befinden, ändert sich auch der Speicherort.
mv -i -- source destination
-i prüft vor dem Überschreiben einer vorhandenen Zieldatei. -- zeigt das Ende der Optionen an, sodass Namen, die mit einem Bindestrich beginnen, nicht als Optionen interpretiert werden. Die unten stehenden Beispiele basieren auf den GNU Coreutils mv und der Bash-Shell.
Vorbereiten von Dateien und Verzeichnissen für die Übung
Üben Sie in einem temporären Verzeichnis, um vorhandene Daten nicht zu berühren. Führen Sie die unten stehenden Befehle der Reihe nach in derselben Shell aus. Der Pfad des neu erstellten temporären Verzeichnisses wird in der Variablen workdir gespeichert.
workdir=$(mktemp -d)
printf 'example\n' > "$workdir/report.txt"
mkdir "$workdir/docs"
ls -l -- "$workdir"
Wenn report.txt und docs in der Ausgabe erscheinen, sind Sie bereit. Um den Pfad zu überprüfen, führen Sie printf '%s\n' "$workdir" aus. Da die Befehle Variablen aus der aktuellen Shell verwenden, müssen Sie bei Öffnen eines neuen Terminals erneut vorbereiten.
Dateien umbenennen
Benennen Sie die Übungsdatei von report.txt in summary.txt um und überprüfen Sie die Ergebnisse. Stellen Sie sicher, dass das neue Ziel vor der Ausführung nicht bereits existiert.
ls -la -- "$workdir"
mv -i -- "$workdir/report.txt" "$workdir/summary.txt"
ls -l -- "$workdir"
cat -- "$workdir/summary.txt"
Wenn erfolgreich, wird die Liste summary.txt anstelle von report.txt anzeigen, und der letzte Befehl wird example ausgeben. Beim Umbenennen innerhalb desselben Dateisystems bleibt der Inhalt unverändert. Um zum ursprünglichen Namen zurückzukehren, stellen Sie sicher, dass der ursprüngliche Name nicht verwendet wird, dann tauschen Sie die beiden Pfade und führen mv -i aus.
Umbenennen von Verzeichnissen
Verzeichnisse werden auf die gleiche Weise umbenannt. Der folgende Befehl benennt docs in archive in einer Übungsumgebung um, in der das Ziel nicht existiert.
mv -i -T -- "$workdir/docs" "$workdir/archive"
ls -l -- "$workdir"
Wenn erfolgreich, wird archive anstelle von docs angezeigt. -T ist eine Option in GNU mv, die den letzten Pfad nicht speziell als Zielverzeichnis behandelt. Ohne diese Option können Sie, wenn Sie ein bereits vorhandenes Verzeichnis als Ziel angeben, die Quelle in dieses Verzeichnis verschoben werden, statt umbenannt zu werden. Selbst wenn Sie -T verwenden, können je nach Typ und Status des vorhandenen Ziels Ersetzungen oder Fehler auftreten, daher sollten Sie vorher prüfen. Nicht leere Zielverzeichnisse können nicht ersetzt werden.
Überprüfung von Überschreibung und Pfad
Wenn Sie eine bestehende Datei als Ziel angeben, kann die Datei überschrieben werden. Sichern Sie zuerst wichtige Dateien und antworten Sie y nur dann beim Überschreiben auf die Bestätigungsfrage von -i. Um ein Überschreiben zu vermeiden, geben Sie n ein. Der Bestätigungstext kann je nach System- und Spracheinstellungen variieren.
Wenn der Dateiname Leerzeichen enthält, setzen Sie den gesamten Pfad in Anführungszeichen. Das folgende Beispiel zeigt, wie eine separate Übungsdatei erstellt und dann umbenannt wird.
printf 'notes\n' > "$workdir/old notes.txt"
mv -i -- "$workdir/old notes.txt" "$workdir/new notes.txt"
cat -- "$workdir/new notes.txt"
Wenn am Ende notes angezeigt wird, wurde die Datei unter einem neuen Namen gelesen. In der praktischen Arbeit, wenn der Pfad falsch angegeben ist oder keine Berechtigung besteht, überprüfen Sie die Fehlermeldung und die Schreibberechtigungen der Quell- und Zielverzeichnisse. Beim Verschieben in ein anderes Dateisystem kann es zum Kopieren gefolgt von der Löschung des Originals kommen, daher müssen Sie den Speicherplatz und das Ergebnis überprüfen. Für weitere Details zu Optionen und Verhalten schlagen Sie in dem mv-Handbuch der GNU coreutils nach.




