Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
6.4 Umgang mit Dateien 89<br />
Tabelle 6.3: Optionen für cp<br />
Option<br />
Wirkung<br />
-b (backup) Legt von existierenden Zieldateien Sicherungskopien an, indem an den Namen<br />
eine Tilde angehängt wird<br />
-f (force) Überschreibt bereits existierende Zieldateien ohne Rückfrage<br />
-i (interactive) fragt nach, ob bereits bestehende Dateien überschrieben werden sollen<br />
-p (preserve) Behält möglichst alle Dateiattribute der Quelldatei bei<br />
-R (recursive) Kopiert Verzeichnisse mit allen Unterverzeichnissen und allen darin enthaltenen<br />
Dateien<br />
-u (update) Kopiert nur, wenn die Quelldatei neuer als die Zieldatei ist (oder noch keine<br />
Zieldatei existiert)<br />
-v (verbose) Zeigt alle Aktivitäten auf dem Bildschirm<br />
6.4 Umgang mit Dateien<br />
6.4.1 Kopieren, Verschieben und Löschen – cp und Verwandte<br />
Mit dem Kommando cp (engl. copy, »kopieren«) können Sie beliebige Dateien ko- Dateien kopieren<br />
pieren. Dabei gibt es zwei Vorgehensweisen:<br />
Nennen Sie cp die Namen von Quell- und Zieldatei als Argumente, dann wird<br />
unter dem Zieldateinamen eine 1 ∶ 1-Kopie <strong>des</strong> Inhalts der Quelldatei abgelegt. 1 ∶ 1-Kopie<br />
Standardmäßig fragt cp nicht nach, ob es eine bereits existierende Zieldatei überschreiben<br />
soll, sondern tut dies einfach – hier ist also Vorsicht (oder die Option -i)<br />
angebracht.<br />
Statt eines Zieldateinamens können Sie auch ein Zielverzeichnis angeben. <strong>Die</strong> Zielverzeichnis<br />
Quelldatei wird dann unter ihrem alten Namen in das Verzeichnis hineinkopiert.<br />
$ cp liste liste2<br />
$ cp /etc/passwd .<br />
$ ls -l<br />
-rw-r--r-- 1 hugo users 2500 Oct 4 11:11 liste<br />
-rw-r--r-- 1 hugo users 2500 Oct 4 11:25 liste2<br />
-rw-r--r-- 1 hugo users 8765 Oct 4 11:26 passwd<br />
Im Beispiel haben wir mit cp zunächst eine exakte Kopie der Datei liste unter<br />
dem Namen liste2 erzeugt. Anschließend haben wir noch die Datei /etc/passwd ins<br />
aktuelle Verzeichnis (repräsentiert durch den Punkt als Zielverzeichnis) kopiert.<br />
<strong>Die</strong> wichtigsten der zahlreichen cp-Optionen sind in Tabelle 6.3 aufgelistet.<br />
Statt einer einzigen Quelldatei sind auch eine längere Liste von Quelldatei- Liste von Quelldateien<br />
en oder die Verwendung von Shell-Suchmustern zulässig. Allerdings lassen sich<br />
auf diese Art nicht mehrere Dateien in einem Schritt kopieren und umbenennen,<br />
sondern nur in ein anderes Verzeichnis kopieren. Während in der DOS- und Windows-Welt<br />
mit »COPY *.TXT *.BAK« von jeder Datei mit der Endung TXT eine Sicherungskopie<br />
mit der Endung BAK angelegt wird, versagt unter <strong>Linux</strong> der Befehl »cp<br />
*.txt *.bak« normalerweise unter Ausgabe einer Fehlermeldung.<br />
B<br />
Um dies zu verstehen, müssen Sie sich vergegenwärtigen, wie die Shell diesen<br />
Befehl verarbeitet. Sie versucht zunächst, alle Suchmuster durch die passenden<br />
Dateinamen zu ersetzen, also zum Beispiel *.txt durch brief1.txt<br />
und brief2.txt. Was mit *.bak passiert, hängt davon ab, auf wieviele Namen<br />
*.txt gepasst hat und ob es im aktuellen Verzeichnis Namen gibt, die<br />
auf *.bak passen – allerdings wird fast nie das passieren, was ein DOS-Anwender<br />
erwarten würde! Normalerweise wird es wohl darauf hinauslaufen,<br />
dass die Shell dem cp-Kommando das unersetzte Suchmuster *.bak als letztes<br />
einer Reihe von Argumenten übergibt, und das geht aus der Sicht von cp<br />
Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH