GNU/Linux >> LINUX-Kenntnisse >  >> Linux

25 Praktischer mv-Befehl in Linux für alltägliche Benutzer

Der Befehl mv wird verwendet, um Dateien in Linux- und BSD-Distributionen zu verschieben und/oder umzubenennen. Systemadministratoren verwenden regelmäßig mv, um Operationen auf dem Linux-Dateisystem auszuführen. Machen Sie sich keine Sorgen, wenn Sie ein Anfänger sind und wenig oder gar keine Kenntnisse über diesen Befehl haben. Heute haben wir diesen Leitfaden vorbereitet, um Ihnen alle Informationen zum Dienstprogramm mv bereitzustellen, die Sie benötigen. Sie lernen die verschiedenen Funktionen kennen, die mit diesem Befehl verbunden sind, und sammeln die notwendige Erfahrung, indem Sie die unten gezeigten Beispielbefehle ausführen. Zu Ihrem Glück ist mv einer der grundlegendsten Linux-Terminalbefehle und recht einfach zu beherrschen.

Grundlegendes Beispiel für den Linux-mv-Befehl

Da mv nur eine Handvoll Befehlszeilenparameter bietet, ist es sehr einfach zu erlernen. Allerdings ist mv auch sehr robust und kann bei geschickter Verwendung komplexe Dateioperationen ausführen. Schauen Sie sich also die folgenden Befehle an und sehen Sie, wie wir mv in unserer täglichen Computerarbeit verwenden können.

1. Dateien direkt verschieben

Bei einfacher Verwendung kopiert mv die Quelldatei in das Zielverzeichnis und entfernt die Quelle von ihrem vorherigen Speicherort. Zur Veranschaulichung haben wir ein einfaches Verzeichnis namens Test erstellt die ein Verzeichnis namens dir1 enthält und eine Textdatei namens test . Sie können sie einfach mit den folgenden Befehlen erstellen.

$ mkdir Test && cd Test/ && mkdir dir1 && touch test
$ tree
$ mv test dir1/

Zuerst haben wir die Dateien und Verzeichnisse erstellt und dann den Baumbefehl verwendet, um die Dateisystemhierarchie zu visualisieren. Der letzte Befehl ist die Operation, an der wir interessiert sind. Er verschiebt die Datei test in das dir1 Verzeichnis. Das erste Argument von mv ist also die Quelle und das zweite das Ziel. Sie können den Baum wiederverwenden, um die neue Hierarchie anzuzeigen.

2. Dateien umbenennen

Die Syntax zum Verschieben und Umbenennen von Dateien ist dieselbe. Wir müssen jedoch den neuen Namen anstelle des Ziels angeben. Einfach ausgedrückt, wenn Sie mv auf zwei Dateien anwenden, die sich auf demselben Linux-Dateisystem befinden, führt dies zu einer Dateiumbenennungsoperation.

$ cd dir1
$ mv test TEST
- -

Gehen Sie jetzt einfach zurück zum übergeordneten Verzeichnis und geben Sie den Baumbefehl erneut aus. Dadurch wird überprüft, ob Sie in diesem Dateisystem keine Datei namens test haben. Sie sollten in der Datei sehen, dass es eine neue Datei namens TEST gibt .

3. Überschreiben von Dateien verhindern

Standardmäßig überschreibt mv alle gleichnamigen Dateien im Zielverzeichnis. Sie können dies mit den folgenden Befehlen überprüfen.

$ cp TEST dir1
$ mv TEST dir1/TEST
$ tree

Wir können ein solches Überschreiben jedoch leicht mit dem -n verhindern Option, wie im folgenden Beispiel gezeigt.

$ cp dir1/TEST .
$ mv -n TEST dir1/TEST
$ tree

Jetzt können wir sehen, dass unser Dateisystem beide Dateien enthält. Das -n Option hat auch eine Langform namens –no-clobber . Probieren Sie beide aus, wenn Sie sich für einige Zeit an sie erinnern möchten.

4. Interaktiven Modus beim Überschreiben von Dateien aktivieren

Sie können auch den interaktiven Modus in mv einstellen, was zu einer Abfrage führt, ob Sie die Zieldatei überschreiben möchten oder nicht. Obwohl es für Anfänger nützlich ist, ist es ein Kinderspiel, dass dies Ihre Automatisierungsskripts anhält.

$ mv -i TEST dir1/TEST
mv: overwrite 'dir1/TEST'?

Geben Sie einfach y oder n in die obige Eingabeaufforderung ein, um das Überschreiben von Dateien zu aktivieren/deaktivieren. Sie können auch die alternative Langform –interaktiv verwenden anstelle von -i .

5. Erstellen Sie Backups, bevor Sie Dateien überschreiben

Es ist immer eine gute Idee, Sicherungen zu erstellen, bevor umfangreiche Dateioperationen durchgeführt werden. Startende Linux-Benutzer überschreiben ihre Dateien oft ungewollt. Glücklicherweise ermöglicht uns mv, unsere Zieldateien ganz einfach zu sichern. Werfen Sie einen kurzen Blick auf die folgende Abbildung, um zu sehen, wie das funktioniert.

$ mv --backup TEST dir1/TEST
$ tree

Die Ausgabe des tree-Befehls zeigt, dass die Quelldatei erfolgreich verschoben wurde und es eine zusätzliche Datei namens TEST~ gibt im Zielverzeichnis. Es ist die Sicherung der früheren Datei. Verwenden Sie diese Option immer, wenn Sie sich über das genaue Zielverzeichnis oder die zugehörigen Dateien nicht sicher sind.

6. Benutzerdefiniertes Suffix für Sicherungsdateien festlegen

Wie wir bereits gesehen haben, verwendet mv das ~ -Symbol als standardmäßiges Backup-Suffix. Wir können dies jedoch mit dem -S in etwas anderes ändern Möglichkeit. Das folgende Beispiel demonstriert dies anhand eines neuen Backup-Suffixes .BKP.

$ mv -S .BKP TEST dir1
$ mv --suffix=.BKP TEST dir1

Sie können auch das –Suffix verwenden Option anstelle von -S falls Sie es wollen. Das Festlegen benutzerdefinierter Suffixe für unsere Sicherungsdateien erleichtert deren Identifizierung und ermöglicht ein besseres Verständnis des Linux-Dateisystems.

7. Zieldatei aktualisieren

Mit dem Linux-Befehl mv können wir Zieldateien basierend auf ihrer Verfügbarkeit und ihrem Zeitstempel aktualisieren. In diesem Fall ist der Verschiebevorgang nur erfolgreich, wenn die Quelldatei neuer als die Zieldatei ist oder wenn die Zieldatei überhaupt fehlt.

$ rm -ri *
$ mkdir dir1 && touch test dir1/test
$ mv -u test dir1/

Zuerst haben wir alle Inhalte von Test/ gelöscht und sie dann neu erstellt. Ich habe dies getan, damit beide Testdateien gleichzeitig erstellt werden und daher gleich sind. Jetzt, wenn ich versuche, test zu verschieben in dir1 , die Bewegung ist fehlgeschlagen und wurde stillschweigend beendet. Dies geschah, da mv festgestellt hat, dass sie gleich sind, und davon ausgegangen ist, dass kein Update erforderlich ist.

8. Konfigurieren Sie den SELinux-Sicherheitskontext als Standard

Der SELinux-Sicherheitskontext kennzeichnet CPU-Ressourcen in Systemen, in denen er aktiviert ist. Es verwendet diese Informationen, um festzustellen, ob eine bestimmte Ressource für einen bestimmten Benutzer zugänglich ist oder nicht. Sie können den SELinux-Kontext einfach mit -Z auf den Standardwert setzen Option, wie unten gezeigt.

$ touch new         # create another file for testing
$ mv -Z new dir1/
$ mv --context new dir1/
$ ls -Z dir1/

Hier verwendet mv den standardmäßigen SELinux-Kontext Ihres Systems, wenn es den Dateinamen new an sein neues Ziel verschiebt. Sie können dies überprüfen, indem Sie den letzten oben gezeigten Befehl verwenden.

9. Ausführliche Ausgabe aktivieren

Wie viele herkömmliche Linux-Terminalbefehle ermöglicht uns auch der mv-Befehl die ausführliche Ausgabe seiner Operationen anzuzeigen. Dies ist besonders hilfreich für Anfänger oder wenn Sie viele Dateien von einem Dateisystem auf ein anderes übertragen.

$ mv -v dir1/new .

$ mv --verbose dir1/new .
renamed 'dir1/new' -> './new'

Die obigen Befehle sind gleichwertig und übertragen die Datei dir1/new zu unserem Test Mappe. Beachten Sie, dass der Punkt „. ‘Symbol bezieht sich auf das aktuelle Verzeichnis in Unix-ähnlichen Betriebssystemen. Diese Befehle sollten eine kurze Erläuterung der zugrunde liegenden Dateioperation liefern.

10. Zielverzeichnis aktivieren

Manchmal kann es für mv schwierig sein, die Quelldateien wie vom Benutzer beabsichtigt dem Zielverzeichnis zuzuordnen. Dies kann passieren, wenn mv nicht ableiten kann, ob das Ziel ein Zielverzeichnis oder eine Datei ist. Glücklicherweise können wir mv leicht mitteilen, ob das Zielargument ein Verzeichnis oder eine Datei sein soll, indem wir das -t verwenden Option von mv.

$ mv -t dir1/new/ new
$ mv --target-directory=dir1/new/ new

Wenn Sie den obigen Befehl eingeben, verschiebt mv die Datei mit dem Namen new aus dem Test in das Verzeichnis Test/dir1/new Verzeichnis. Beachten Sie, dass wir das Zielverzeichnis vor dem Quellenargument übergeben. Es ist obligatorisch seit -t zeigt das Zielziel an.

11. Zielverzeichnis deaktivieren

Das mv-Dienstprogramm ermöglicht es uns auch, das Zielziel vollständig zu deaktivieren. Dies ist nützlich, wenn Sie sicherstellen möchten, dass Ihre Zielargumente als normale Linux-Dateien behandelt werden. Wie das obige Beispiel hat auch dieser Befehl sowohl eine Kurz- als auch eine Langform.

$ mv dir1/new/new .
$ mv -T new dir1/new/
$ mv --no-target-directory new dir1/new/

Daher behandelt mv das Ziel als eine normale Datei, wenn wir -T verwenden oder –no-target-directory Option.

12. Überschreiben erzwingen aktivieren

Obwohl moderne Implementierungen des Linux-mv-Befehls heute nicht vor dem Überschreiben auffordern, bietet mv immer noch eine praktische Option, um das Überschreiben zu erzwingen. Sie können diese Option verwenden, um sicherzustellen, dass Ihre Linux-Shell-Skripte abwärtskompatibel sind und auf Systemen mit einer anderen mv-Implementierung nicht beschädigt werden.

$ mv -f test dir1/test
$ mv --force test dir1/test

Beide obigen Befehle sind äquivalent und führen die Verschiebeoperation durch, ohne den Benutzer um eine Bestätigung zu bitten. Ihre Automatisierungsskripte würden also nicht wegen mv zusammenbrechen.

13. Entfernen Sie nachgestellte Schrägstriche

Wenn Sie die automatische Vervollständigung in Linux-Terminals verwenden, wird nach jedem Verzeichnis auch ein nachgestellter Schrägstrich hinzugefügt. Es kann Probleme beim Verschieben von Dateien geben. Daher haben die Entwickler von mv auch eine praktische Option geschaffen, die diese nachgestellten Schrägstriche für Sie entfernt.

$ mv --strip-trailing-slashes dir1/new/ .

Die –strip-trailing-slashes Option weist mv an, alle nachgestellten Schrägstriche in den SOURCE-Argumenten zu entfernen. Dies kann in bestimmten Szenarien sehr nützlich sein, daher sollten Sie sich mit dieser Option vertraut machen.

14. Mehrere Dateien verschieben

Linux-Benutzer können mv verwenden, um eine große Anzahl von Dateien gleichzeitig zu verschieben. Der folgende Befehl zeigt, wie Sie mit mv.

mehrere Dateien zusammen verschieben
$ touch aaa bbb ccc
$ mv aaa bbb ccc dir1/

Wir können auch Dateien und Verzeichnisse zusammen verschieben. In diesem Fall interpretiert mv das letzte Argument als Zielordner. Sie können auch das -t verwenden Option zur Angabe des Zielorts.

15. Dateien mit Platzhaltern verschieben

Der Linux-Befehl mv unterstützt keine regulären Ausdrücke. Sie können jedoch immer noch einige Platzhalterzeichen verwenden, um einen grundlegenden Musterabgleich durchzuführen. Werfen Sie einen kurzen Blick auf das folgende Beispiel, um zu sehen, wie wir Platzhalter mit mv verwenden können.

$ touch aaa.mp3 bbb.mp3 ccc.mp3
$ mv *.mp3 dir1/ # moves all mp3 files
$ touch AAA BBB CCC
$ mv [[:upper:]]* dir1   # moves all files that has uppercase names
$ mv *[[:lower:]] dir1   # moves all files that has lowercase names

Es gibt noch ein paar weitere Wildcards, die von mv unterstützt werden. Obwohl nicht sehr umfangreich, helfen sie bei routinemäßigen Dateiverarbeitungsvorgängen.

16. Fortschrittsbalken anzeigen

Normalerweise führt der Befehl mv seine Operationen innerhalb eines angemessenen Zeitrahmens aus. Es kann jedoch relativ länger dauern, wenn Sie sehr große Dokumente verschieben. Benutzer können sogar denken, dass sich das System aufgehängt hat, wenn es zu lange dauert. Wir können dieses Problem vermeiden, indem wir mv dazu zwingen, einen Fortschrittsbalken anzuzeigen, der den Benutzer auf dem Laufenden hält.

$ mv dir1/*.mp3 . & progress -mp $!

Dieser Befehl verschiebt alle MP3-Dateien aus dir1/ zum Test Verzeichnis und zeigt eine praktische Fortschrittsanzeige. Wir verwenden das Linux-Paket ‘progress ' dafür. Sie können dies mit dem folgenden Befehl installieren.

$ sudo apt install progress

17. Verschieben von Dateien mit geschweiften Klammern

Die Linux-Befehlsshell ermöglicht es Benutzern, wörtliche Kombinationen mit einer Methode namens Klammererweiterung zu generieren. Obwohl viele Leute dazu neigen, dies zu verkomplizieren, ist es in der Praxis ziemlich einfach. Sehen Sie sich die folgenden Beispiele genau an, um zu erfahren, wie die Klammererweiterung unter Linux und anderen Unix-ähnlichen Systemen funktioniert.

$ rm new && touch new.txt new.pdf new.html
$ mv new.{pdf,txt,html} dir1/new/ # brace expansion

Daher wird jede Datei mit dem Namen neu mit der Erweiterung .pdf/.txt/.html in das Zielverzeichnis verschoben. Da wir die Dateinamenliterale aus unserer geschweiften Klammer generieren, nennen wir diese Operation geschweiften Erweiterung.

18. Dateien nach Größe verschieben

Die Dateiverarbeitung umfasst viele Verschiebungsvorgänge, und große Dateien beanspruchen tendenziell viel CPU-Zeit. Daher sichern viele Administratoren ihre Dokumente basierend auf ihrer Größe. Wir zeigen Lesern, wie sie Dateien basierend auf ihrer Größe mit den Befehlen mv und find verschieben können.

$ find . -type f -size +1G -exec mv "{}" large_files/ \;

Der obige Befehl verschiebt alle Dateien, die größer als 1 GB sind, aus dem aktuellen Arbeitsverzeichnis nach large_files . Sie können einfach den Wert des Größenparameters ändern, um Ihren Verschiebevorgang anzupassen.

19. Dateien basierend auf dem Änderungsdatum verschieben

Das Änderungsdatum ist ein weiteres gängiges Kriterium bei der Sicherung von Systemdaten. Mit dem folgenden Befehl können Sie alle Dateien finden, die älter als eine bestimmte Zeit sind.

$ find . -mtime +90 -exec mv "{}" old_files/ \;

Dieser Befehl verschiebt alle Dateien, die älter als 3 Monate (90 Tage) sind, in ein neues Verzeichnis namens old_files . Das Bemerkenswerte dabei ist, dass das bereitgestellte Argument in Tagen angegeben wird.

20. Mehrere Dateien umbenennen

Standardmäßig kann das Dienstprogramm mv nicht mehrere Dateien gleichzeitig umbenennen. Wir können jedoch immer noch andere Tools wie find neben mv für solche erweiterten Dateioperationen verwenden. Der folgende Befehl benennt alle .php-Dateien in .html-Dateien um.

$ touch {test1,test2,test3}.php
$ find . -depth -name "*.php" -exec sh -c 'f="{}"; mv -- "$f" "${f%.php}.html"' \;

Dieser Befehl benennt jede .php-Datei mithilfe von mv und dem exec-Schalter des Linux-Befehls find in eine .html-Datei um.

21. Suchen Sie die Binärinformationen des Linux-mv-Befehls

Wo sich der mv-Befehl befindet, können wir mit dem Linux-Befehl „what“ herausfinden. Es gibt den Namen der Pfade oder Links aus, die einen bestimmten Befehl behandeln, wie mv.

$ which mv
/usr/bin/mv

Sie können auch den „whereis“-Befehl in Linux verwenden, um zusätzliche Informationen wie den Speicherort der mv-Binärdatei und aller zugehörigen manuellen Dateien anzuzeigen, wie unten gezeigt.

$ whereis mv
mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz

22. Versionsinformationen anzeigen

Die Versionsinformationen von Linux-Terminalbefehlen ermöglichen es uns, die spezifische Version eines Pakets zu finden. Wir können diese Versionsinformationen für mv leicht anzeigen, wie im folgenden Beispiel gezeigt.

$ mv --version

Neben einigen anderen Informationen werden die Versionsinformationen für das auf Ihrem System installierte mv-Paket gedruckt. Diese Informationen umfassen den Namen aller Abhängigkeiten und Personen, die mv verfasst haben.

23. Hilfeseite anzeigen

Die Hilfeseite enthält zusammengefasste Informationen zu allen verfügbaren Optionen für das Dienstprogramm mv. Es ist eine praktische Möglichkeit, sich kaum verwendete Optionen zu merken.

$ mv --help

Da mv nur wenige Befehlszeilenargumente unterstützt, ist es relativ einfacher, sich diese zu merken. Glücklicherweise können Sie jederzeit die Hilfeseite für schnelle Informationen zu einer bestimmten Option konsultieren.

24. Manpage anzeigen

Im Gegensatz zu den zusammengefassten Informationen, die help bietet, bietet die Manpage einen viel detaillierteren Einblick. Sehen Sie sich den folgenden Befehl an, wenn Sie eine Option oder eine bestimmte Verwendung im Detail verstehen möchten.

$ man mv

Es sollte eine detaillierte Anleitung anzeigen, die alle verschiedenen Optionen erklärt, die mv zur Verfügung stehen. Sie sollten immer die Manpage durchgehen, bevor Sie irgendwelche Befehle ausprobieren, die das Dateisystem verändern.

25. Überprüfen Sie den Alias

Viele Linux-Distributionen verwenden vorkonfigurierte Aliase, um standardmäßige Befehlszeilenoptionen für Pakete zu erzwingen. Mit dem folgenden Befehl können Sie leicht überprüfen, ob mv ein Alias ​​für etwas ist.

$ alias | grep -iw mv
$ type mv

Der letzte Befehl funktioniert jedoch nicht, wenn Ihr Linux-System den mv-Befehl gehasht hat.

Abschlussgedanken

Mit dem Linux-mv-Befehl können wir viele Dateioperationen wie das Verschieben von Dateien, das Umbenennen von Dateien, das Erstellen von Sicherungen usw. ausführen. Obwohl es nur eine begrenzte Anzahl von Optionen zulässt, können wir mv mit vielen Linux-Terminalbefehlen wie dem Befehl find kombinieren und komplexere Befehlskombinationen erstellen. Wir haben die 25 besten Beispiele für mv im Computeralltag skizziert. Einige von ihnen sind reine Grundlagen, während andere bei der Lösung dynamischerer Probleme hilfreich sein können. Hoffentlich haben wir Ihnen die wesentlichen Erkenntnisse geliefert, nach denen Sie gesucht haben. Posten Sie Ihre Gedanken im Kommentarbereich und lassen Sie uns wissen, wenn Sie Fragen haben.


Linux
  1. 12 IP-Befehlsbeispiele für Linux-Benutzer

  2. 20 Sed (Stream Editor)-Befehlsbeispiele für Linux-Benutzer

  3. Linux-Benutzer Befehls-Tutorial für Anfänger (mit Beispielen)

  4. 8 praktische Beispiele für den Linux-Xargs-Befehl für Anfänger

  5. Wozu dient Linux test -a command test?

50 Produktiver und praktischer grep-Befehl für Linux-Enthusiasten

15 Möglichkeiten, den Linux Watch-Befehl für alltägliche Aktivitäten zu verwenden

15 Praktische Beispiele für den Rsync-Befehl unter Linux

5 praktische Beispiele für Tail-Befehle unter Linux

Ein praktischer Leitfaden für den Chroot-Befehl unter Linux

UNIX / Linux:7 praktische Beispiele für PS-Befehle zur Prozessüberwachung