mv (Unix)

mv (Unix)

mv (engl. Abkürzung für move) ist ein Unix-Befehl, der eine oder mehrere Dateien oder Verzeichnisse von einem Ort zum anderen verschiebt. Damit vereint das Programm die beiden von einem Computerbenutzer intuitiv als verschieden wahrgenommenen Aktionen des Umbenennens und des Verschiebens von Dateien zwischen verschiedenen Verzeichnissen.

Um die Arbeitsweise von mv zu verstehen, ist eine Fallunterscheidung nötig, ob es sich bei dem Quell-/Zielverzeichnis um die gleichen oder um verschiedene Geräte handelt. Dank des Unix-Konzepts des transparenten Mountens von Dateisystemen bzw. Partitionen in beliebige existierende Verzeichnisse muss mv in der Lage sein, zum einen Dateien auf dem gleichen Dateisystem einfach umzubenennen (aus /mnt/diskette/ordner/datei1 wird z. B. /mnt/diskette/anderer_ordner/datei1) sowie andererseits Dateien von einem Dateisystem zum anderen zu befördern. Dazu wird die Originaldatei unter dem anderen Namen auf die Zielpartition kopiert und anschließend vom ursprünglichen Datenträger gelöscht. Diese unterschiedlichen Arbeitsabläufe haben unterschiedlich viel Arbeitsaufwand zur Folge: Das Verschieben von Dateien in einem einzigen Dateisystem geht bei den meisten Dateisystemen sehr schnell, wohingegen das Verschieben auf ein anderes Dateisystem mehr Zeit in Anspruch nimmt, weil in Wirklichkeit ein Löschzugriff sowie ein Schreibzugriff stattfindet.

Selbstverständlich sind zum Verschieben von Dateien Schreibrechte sowohl im Quell- als auch Zielverzeichnis nötig.

Inhaltsverzeichnis

Verwendung

Der Syntax von mv funktioniert analog zu cp:

mv quelldatei zieldatei

Mehrere Dateien können gleichzeitig in ein Zielverzeichnis verschoben werden:

mv quelldateien ... zielverzeichnis

Konflikte bei existierenden Zieldateien

Wenn eine Datei zu einem Dateinamen einer bereits existierenden Datei verschoben wird, so wird letztere gelöscht. Wenn für die existierende Zieldatei keine Schreibrechte vorhanden sind, für das Verzeichnis der Zieldatei allerdings schon, dann fragt mv interaktiv nach, ob er die Datei überschreiben soll, wenn der Parameter -f (für force) nicht gesetzt ist:

$ ls -l
insgesamt 0
-rw-r--r-- 1 sven users  0 22. Apr 22:51 a.txt
drwxr-xr-x 2 sven users 72 22. Apr 22:51 ziel
 
$ ls -l ziel/
insgesamt 0
-r--r--r-- 1 sven users 0 22. Apr 22:51 a.txt
 
$ mv a.txt ziel
mv: Überschreiben von »ziel/a.txt«, über Modus 0444 hinwegsetzen?

Abgrenzung zum Kopieren und Löschen von Dateien

Es sei angemerkt, dass normalerweise das Verschieben von Dateien im gleichen Dateisystem nicht identisch ist mit der Aktion des Kopierens dieser Datei und dem anschließenden Löschen des Originals. Beim Verschieben einer Datei auf dem gleichen Dateisystem wird in Unix-Dateisystemen einfach der Hardlink der Datei aus dem Quellverzeichnis entfernt und ein neuer zum Zielverzeichnis hinzugefügt. Dabei bleibt die Datei (der Inode) selbst unberührt, d.h. der Inode und damit die Position der Datei auf dem Speichermedium ändert sich nicht.

Durch diesen Zusammenhang erklären sich auch die Verhältnisse der Dateirechte: Man kann eine Datei, auf die man keinen Lesezugriff hat, nicht kopieren, aber man kann sie verschieben (vorausgesetzt man hat Schreibrechte im Original- und Zielverzeichnis, siehe oben). Analog ist die Denkweise bei Verzeichnissen: Es sei ein mit Dateien gefülltes Verzeichnis gegeben, auf deren Dateien man keine Schreibrechte hat. Entsprechend darf man das Verzeichnis nicht löschen, da die Berechtigung fehlt, die Inhalte zu löschen. Trotzdem kann man aber das Verzeichnis selbst verschieben.

Siehe auch

  • cp, zum Kopieren von Dateien auf Unix (weitgehend identische Syntax)
  • rm, zum Löschen von Dateien auf Unix

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Unix — (officially trademarked as UNIX, sometimes also written as Unix with small caps) is a computer operating system originally developed in 1969 by a group of AT T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Douglas McIlroy, and… …   Wikipedia

  • UNIX — Ken Thompson und Dennis Ritchie Basisdaten Entwickler …   Deutsch Wikipedia

  • Unix — Kommandozeile (Unix Prompt) Basisdaten Entwickler Ken Thompso …   Deutsch Wikipedia

  • Unix — (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT T, entre los que figuran Ken Thompson, Dennis Ritchie y …   Wikipedia Español

  • UNIX — UNIX, parfois écrit « Unix », avec des petites capitales, est un système d exploitation multitâche et multi utilisateur créé en 1969, conceptuellement ouvert et fondé sur une approche par laquelle il offre de nombreux petits outils… …   Wikipédia en Français

  • Unix — (marque déposée officiellement comme UNIX, parfois aussi écrit comme Unix avec les petites capitalisations) est le nom d un système d exploitation multitâche et multi utilisateur créé en 1969, conceptuellement ouvert et fondé sur une approche par …   Wikipédia en Français

  • Unix time — Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1 1970, not counting leap seconds. It is widely used not only on Unix like… …   Wikipedia

  • Unix-подобная операционная система — Генеалогическое дерево UNIX подобных ОС UNIX подобная операционная система (иногда сокр. *nix)  система, которая образовалась под влиянием UNIX. Термин включает свободные/открытые операционные системы, образованные от UNIX компании …   Википедия

  • UNIX — 〈[ju:nıx] EDV〉 Betriebssystem für Computer, das zum großen Teil in der Programmiersprache C geschrieben ist [engl.] * * * UNIX   [ursprünglich UNICS, Abk. für Uniplexed Information and Computing System, dt. »nicht multiplextes (vielseitiges)… …   Universal-Lexikon

  • UNIX-Kommandos — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix-Befehle — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”