Zu_Befehl.jpg

cp und mv

Bewegung für Ihre Dateien

In dieser "Zu Befehl"-Folge zeigen wir Ihnen, wie Sie Dateien an andere Stellen kopieren oder verschieben. Bei genauem Hinsehen geschehen manchmal recht ungewöhnliche Dinge: Was passiert, wenn man einen symbolischen Link kopiert? Wie bleiben möglichst viele Eigenschaften einer Datei beim Kopieren erhalten? Und wie kopiert man Unterverzeichnisse?

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen - wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Original oder Fälschung?

Der Befehl cp datei1 datei2 (englisch "copy") erzeugt eine neue Datei mit dem Inhalt der Ausgangsdatei, wobei diese unverändert bleibt. Sollte datei2 schon existieren, wird sie einfach überschrieben. Eine Sicherheitsabfrage bauen Sie mit dem Parameter -i (oder in Langform --interactive) ein:

huhn@asteroid:~$ cp -i datei1 datei2
cp: »datei2« überschreiben?

Jede Antwort, die mit j, J, y oder Y beginnt, wird als Bestätigung interpretiert - alles andere heißt "nein". So eine Sicherheitsabfrage ist schön; vorsichtige Menschen setzen sich ein Alias. Für die Linux-Standard-Shell bash würde der Eintrag in der privaten Konfigurationsdatei .bashrc aus dem Home-Verzeichnis so aussehen:

alias cp='cp -i'

Wie bei allen Standardkommandos, die auf diese Weise neu definiert werden, sollten Sie auch hier Vorsicht walten lassen: Hat man sich einmal an die Sicherheitsabfrage gewöhnt, kann man leicht ins Schleudern kommen, wenn es den schützenden Alias auf einem anderen System oder unter einem anderen Account nicht gibt.

Noch mehr Sicherheit bietet der Parameter -b (--backup). Ist die Zieldatei bereits vorhanden, wird automatisch eine Sicherungskopie angelegt. Diese kann man an der Tilde erkennen: datei2~.

Was passiert aber, wenn Sie keine "normalen" Dateien, sondern einen symbolischen Linkkopieren? Die Referenz vom Link auf die Datei wird hierbei aufgelöst. Im Klartext heißt das: Kopiert wird die Datei, auf die der Link zeigt. Möchten Sie stattdessen einen neuen Link erzeugen, greifen Sie zur Option cp -d (--no-dereference) - dann wird nicht "dereferenziert", der Link (die Referenz) also nicht aufgelöst.

Es ist auch möglich, mehrere Dateien in ein Zielverzeichnis zu kopieren: Dazu hängen Sie einfach die Dateinamen hintereinander: cp datei1 datei2 datei3 verzeichnis. Für das Kopieren eines ganzen Verzeichnisses mit sämtlichen Dateien und Unterverzeichnissen, verwenden Sie cp -R (--recursive). So wird das ganze Verzeichnis rekursiv (also mit allen Dateien bis in den letzten Winkel eventuell enthaltener Unterverzeichnisse) dupliziert.

Hinter den Kulissen

Normalerweise wird die beim Kopieren entstehende neue Datei mit ownerund groupdes kopierenden Benutzers angelegt und erhält einen aktuellen timestamp. Die Zugriffsrechte der Kopie richten sich nach der gesetzten umask. Um stattdessen möglichst viele Eigenschaften der Originaldatei zu übernehmen, verwendet man die Option -p (--preserve). Hier werden auf jeden Fall Zugriffsrechte und Zeitstempel der Ursprungsdatei übernommen.

Beachten Sie, dass nur root fremdes Dateieigentum "verschenken" oder dem Verzeichnis eines bestimmten Benutzers Dateien, die einem anderen gehören, hinzufügen kann. Nur ein als root ausgeführtes cp -p bewirkt, dass die neue Datei demselben User gehört. Kopiert man als gewöhnlicher User, macht man sich damit zum Besitzer. Anderenfalls könnte ja jeder anderen eine veränderte Datei als Kuckucksei unterschieben. Systemverwalter benötigen die Option -p, um User-Verzeichnisse zu sichern. Müsste ein Administrator jedesmal nach dem Kopieren wieder Rechte und Gruppenzugehörigkeit ändern, wäre das ganz schön viel Aufwand.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Zu Befehl: Kanäle, Pipes und Tee
    Mit wenigen Handgriffen leiten Sie auf der Kommandozeile Ein- und Ausgaben von Befehlen um und kombinieren Kommandos. Wir stellen die benötigten Bash-Operatoren vor und zeigen, wie Sie mit dem Programm tee noch einen Zwischenschritt einlegen.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilen-Dschungel ein wenig auszukennen.
  • rsync
    Mit dem Programm rsync [1] lassen sich lokal oder remote Dateien und Verzeichnisse synchronisieren. Dazu wird das "rsync remote-update protocol" benutzt, d. h. es wird zunächst auf Unterschiede zwischen Quelle und Ziel geprüft, bevor die eigentliche Übertragung beginnt – auf diese Weise wird das Transfervolumen minimiert.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Zu Befehl: df, du
    Programme wie df ("disk free") und du ("disk usage") geben Auskunft über die Auslastung des Dateisystems. Dabei verrät df, wieviel Platz auf den Partitionen verfügbar ist, und du gibt an, wieviele Blöcke tatsächlich belegt sind. Wir zeigen, wie Sie mit diesen beiden Tools "Speicherfressern" auf die Schliche kommen.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

NOKIA N900 einziges Linux-Smartphone? Kein Support mehr
Wimpy *, 28.08.2016 11:09, 0 Antworten
Ich habe seit vielen Jahren ein Nokia N900 mit Maemo-Linux. Es funktioniert einwandfrei, aber ich...
Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...