Der Linux-mv-Befehl wird verwendet, um Dateien und Verzeichnisse von einem Ort an einen anderen zu verschieben. Neben dem Verschieben der Dateien kann es auch eine Datei oder ein Verzeichnis umbenennen.
1. Datei umbenennen
Beim Umbenennen einer Datei mit dem Befehl mv bleibt die Inode-Nummer gleich, auch nachdem sie auf einen anderen Namen verschoben wurde. Wenn Sie die Datei in ein anderes Dateisystem verschieben, ändert sich die Inode-Nummer.
$ cd /tmp $ ls -i sample.txt 136407 sample.txt $ mv sample.txt sample1.txt $ ls -i sample1.txt 136407 sample1.txt
Hinweis: ls -i zeigt die Inode-Nummer einer Datei an, wie wir zuvor in unseren ls-Befehlsbeispielen besprochen haben.
2. Verzeichnis umbenennen
Genau wie beim Umbenennen einer Datei können Sie ein Verzeichnis mit dem Befehl mv umbenennen, wie unten gezeigt. Dadurch bleibt auch die Inode-Nummer des Verzeichnisses nach dem Umbenennen gleich.
Wenn Sie einfach ls -l dir ausführen, werden die Dateien im Verzeichnis angezeigt. Um die Verzeichniseigenschaften anzuzeigen, verwenden Sie die Option -d. Die Option -i zeigt die Inode-Nummer des Verzeichnisses an.
$ ls -ldi dir1 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir1 $ mv dir1 dir2 $ ls -ldi dir2 271365 drwxr-xr-x 2 bala bala 4096 2010-10-30 20:25 dir2
3. Vor dem Überschreiben zur Bestätigung auffordern
Standardmäßig fragt der mv-Befehl nicht nach einer Bestätigung, ob die Zieldatei existiert, er überschreibt sie einfach. Um dies zu vermeiden, möchten Sie möglicherweise eine Bestätigung vom Befehl move erhalten, bevor Sie die Zieldatei mit der Option -i wie unten gezeigt überschreiben. Sie können entweder „y“ oder „n“ eingeben, um den Verschiebevorgang zu akzeptieren oder abzulehnen.
$ mv -i sample.txt sample1.txt mv: overwrite `sample1.txt'?
Wenn sich die Berechtigung für die Zieldatei von der Quelldatei unterscheidet, zeigt der Befehl mv -i die folgende Bestätigung an.
$ mv -i sample.txt sample1.txt mv: try to overwrite `sample1.txt', overriding mode 0644 (rw-r--r--)? y
4. Mehrere Dateien in ein bestimmtes Verzeichnis verschieben
Sie können mehrere Dateien mit dem Befehl mv verschieben. Das folgende Beispiel verschiebt den Inhalt des aktuellen Verzeichnisses in ein anderes Verzeichnis.
$ cd chap1 $ ls -F ex1.c ex2.c ex3.c example/ exercise/ $ mv * chap2/
5. Erstellen Sie vor dem Überschreiben eine Sicherungskopie des Ziels
Mit der Option mv –suffix können Sie vor dem Überschreiben eine Sicherungskopie der Zieldatei erstellen. Die ursprüngliche Zieldatei wird mit der in der Option -S oder –suffix angegebenen Erweiterung verschoben.
$ ls file1 file2 $ mv --suffix=.bak file1 file2 $ ls file2 file2.bak
Hinweis: Vielleicht möchten Sie einen Alias für „mv –suffix“ erstellen, der jedes Mal automatisch eine Sicherung erstellt, wenn Sie den Befehl mv verwenden und wenn die Zieldatei existiert.
6. Verschieben Sie nur die Dateien, die nicht im Zielverzeichnis vorhanden sind
Wenn Sie mv * ausführen, werden alle Dateien in das Zielverzeichnis verschoben. Wenn Sie jedoch nur die Dateien aus dem Quellverzeichnis verschieben möchten, die nicht im Zielverzeichnis vorhanden sind, verwenden Sie die Option mv -u wie unten gezeigt.
Der folgende Befehl verschiebt nur ex2 und ex2 von Kapitel 1 nach Kapitel 2, da die ex1-Datei bereits in Kapitel 2 existiert und nicht verschoben wird.
$ ls chap1 ex1 ex2 ex3 $ ls chap2 ex1 $ mv -u chap1/* chap2/ $ ls chap1 ex1 $ ls chap2 ex1 ex2 ex3