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

Linux-mv-Befehl für Anfänger erklärt (8 Beispiele)

Genau wie cp zum Kopieren und rm zum Löschen bietet Linux auch einen eingebauten Befehl zum Verschieben und Umbenennen von Dateien. Es heißt mv . In diesem Artikel besprechen wir die Grundlagen dieses Befehlszeilentools anhand von leicht verständlichen Beispielen. Bitte beachten Sie, dass alle in diesem Tutorial verwendeten Beispiele auf Ubuntu 20.04 LTS getestet wurden.

Linux-mv-Befehl

Wie bereits erwähnt, dient der Befehl mv unter Linux dazu, Dateien zu verschieben oder umzubenennen. Es folgt die Syntax des Befehls:

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

Und hier ist, was die Manpage dazu sagt:

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Die folgenden Beispiele im Q&A-Stil geben Ihnen eine bessere Vorstellung davon, wie dieses Tool funktioniert.

Q1. Wie verwende ich den mv-Befehl unter Linux?

Wenn Sie eine Datei nur umbenennen möchten, können Sie den mv-Befehl folgendermaßen verwenden:

mv [filename] [new_filename]

Zum Beispiel:

mv names.txt fullnames.txt

Wenn Sie eine Datei an einen neuen Ort verschieben möchten, verwenden Sie den mv-Befehl auf die folgende Weise:

mv [Dateiname] [Zielverzeichnis]

Zum Beispiel:

mv fullnames.txt /home/himanshu/Downloads

Q2. Wie kann ich sicherstellen, dass mv vor dem Überschreiben auffordert?

Standardmäßig fordert der mv-Befehl nicht an, wenn der Vorgang das Überschreiben einer vorhandenen Datei beinhaltet. Der folgende Screenshot zeigt beispielsweise, dass die vorhandene Datei full_names.txt von mv ohne Warnung oder Benachrichtigung überschrieben wurde.

Wenn Sie möchten, können Sie jedoch mv mit dem -i zur Eingabeaufforderung zwingen Befehlszeilenoption.

mv -i [Dateiname] [neuer_Dateiname]

Die obigen Screenshots zeigen also deutlich, dass -i führt dazu, dass mv nach Benutzerberechtigung fragt, bevor eine vorhandene Datei überschrieben wird. Bitte beachten Sie, dass Sie das -f verwenden, falls Sie ausdrücklich angeben möchten, dass mv vor dem Überschreiben keine Eingabeaufforderung anzeigen soll Befehlszeilenoption.

Q3. Wie kann ich dafür sorgen, dass mv eine vorhandene Datei nicht überschreibt?

Dazu müssen Sie das -n verwenden Befehlszeilenoption.

mv -n [filename] [new_filename]

Der folgende Screenshot zeigt, dass die mv-Operation nicht erfolgreich war, da eine Datei mit dem Namen „full_names.txt“ bereits existierte und der Befehl die Option -n enthielt.

Hinweis:

If you specify more than one of -i, -f, -n, only the final one takes effect.

Q4. Wie bringt man mv dazu, abschließende Schrägstriche (falls vorhanden) aus dem Quellargument zu entfernen?

Um nachgestellte Schrägstriche aus Quellargumenten zu entfernen, verwenden Sie die --strip-trailing-slashes Befehlszeilenoption wie unten gezeigt.

mv --strip-trailing-slashes [source] [dest]

So erklärt die offizielle Dokumentation die Nützlichkeit dieser Option:

This is useful when a source argument may have a trailing slash and specify a symbolic link to a directory. This scenario is in fact rather common because some shells can automatically append a trailing slash when performing file name completion on such symbolic links. Without this option, mv, for example, (via the system’s rename function) must interpret a trailing slash as a request to dereference the symbolic link and so must rename the indirectly referenced directory and not the symbolic link. Although it may seem surprising that such behavior be the default, it is required by POSIX and is consistent with other parts of that standard.

F5. Wie bringt man mv dazu, das Ziel als normale Datei zu behandeln?

Um sicherzustellen, dass die Zielentität als normale Datei (und nicht als Verzeichnis) behandelt wird, verwenden Sie das -T Befehlszeilenoption.

mv -T [source] [dest]

Deshalb gibt es diese Befehlszeilenoption:

This can help avoid race conditions in programs that operate in a shared area. For example, when the command ‘mv /tmp/source /tmp/dest’ succeeds, there is no guarantee that /tmp/source was renamed to /tmp/dest: it could have been renamed to/tmp/dest/source instead, if some other process created /tmp/dest as a directory. However, if mv -T /tmp/source /tmp/dest succeeds, there is no question that/tmp/source was renamed to /tmp/dest.
In the opposite situation, where you want the last operand to be treated as a directory and want a diagnostic otherwise, you can use the --target-directory (-t) option.

F6. Wie kann ich eine mv-Datei nur verschieben, wenn sie neuer als die Zieldatei ist?

Angenommen, es gibt eine Datei namens fullnames.txt im Download-Verzeichnis Ihres Systems und eine Datei mit demselben Namen in Ihrem Home-Verzeichnis. Jetzt möchten Sie ~/Downloads/fullnames.txt mit ~/fullnames.txt aktualisieren, aber nur, wenn letzteres neuer ist. Dann müssen Sie in diesem Fall das -u verwenden Befehlszeilenoption.

mv -u ~/fullnames.txt ~/Downloads/fullnames.txt

Diese Option ist besonders nützlich, wenn Sie solche Entscheidungen innerhalb eines Shell-Skripts treffen müssen.

Q7. Wie bringt man mv dazu, Details darüber auszugeben, was es tut?

Wenn Sie möchten, dass mv Informationen ausgibt, die genau erklären, was es tut, dann verwenden Sie das -v Befehlszeilenoption.

mv -v [filename] [new_filename]

Die folgenden Screenshots zeigen beispielsweise, wie mv einige hilfreiche Details darüber ausgibt, was genau es getan hat.

Q8. Wie kann man mv dazu zwingen, eine Sicherungskopie vorhandener Zieldateien zu erstellen?

Dies können Sie mit dem -b tun Befehlszeilenoption. Die auf diese Weise erstellte Sicherungsdatei hat denselben Namen wie die Zieldatei, jedoch mit einer angehängten Tilde (~). Hier ist ein Beispiel:

Schlussfolgerung

Wie Sie inzwischen erraten haben, ist mv wegen der angebotenen Funktionalität genauso wichtig wie cp und rm - das Umbenennen/Verschieben von Dateien ist schließlich auch eine der grundlegenden Operationen. Wir haben die meisten Befehlszeilenoptionen besprochen, die dieses Tool bietet. Sie können sie also einfach üben und mit der Verwendung des Befehls beginnen. Um mehr über mv zu erfahren, besuchen Sie seine Manpage.


Linux
  1. Linux-Einfügebefehl für Anfänger erklärt (5 Beispiele)

  2. Linux wc Befehl für Anfänger erklärt (6 Beispiele)

  3. Linux-Unexpand-Befehl für Anfänger erklärt (mit Beispielen)

  4. Linux-Exit-Befehl für Anfänger erklärt (mit Beispielen)

  5. Linux-objdump-Befehl für Anfänger erklärt (7 Beispiele)

Linux-rm-Befehl für Anfänger erklärt (8 Beispiele)

Linux cut Befehl für Anfänger erklärt (mit Beispielen)

Linux-Timeout-Befehl für Anfänger erklärt (mit Beispielen)

Linux dd-Befehl für Anfänger erklärt (8 Beispiele)

Linux-md5sum-Befehl für Anfänger erklärt (5 Beispiele)

Linux-Host-Befehl für Anfänger erklärt (8 Beispiele)