Linux cp Kommando-Tutorial für Anfänger (8 Beispiele)

Wenn Sie neu bei Linux sind, sollten Sie wissen, dass die Befehlszeile ein sehr mächtiges Werkzeug ist, das in der Lage ist, fast alle Aufgaben zu erledigen, die Sie über die grafische Oberfläche erledigen können. In den meisten Fällen werden Sie jedoch einfache Aufgaben auf der Kommandozeile erledigen. Eine solche einfache Aufgabe ist das Kopieren von Dateien/Verzeichnissen.

Der Linux-Befehl cp bietet Ihnen die Möglichkeit, Dateien und Verzeichnisse über die Befehlszeile zu kopieren. In diesem Tutorial werden wir die grundlegende Verwendung dieses Tools anhand leicht verständlicher Beispiele diskutieren, aber bevor wir das tun, lohnt es sich zu teilen, dass alle in diesem Artikel erwähnten Beispiele/Anweisungen auf Ubuntu 22.04 LTS getestet wurden.

Linux cp-Befehl

Sie müssen einen Kopiervorgang auf der Befehlszeile durchführen, cp sollte Ihr Go-to-Befehl sein. Gemäß seiner Man Page kann das Tool sowohl Dateien als auch Verzeichnisse kopieren. Hier ist die allgemeine Syntax des Befehls:

cp [OPTION]... SOURCE DEST

Der obige Befehl kopiert SOURCE nach DEST. Die folgenden Beispiele vom Typ Q&A geben Ihnen einen besseren Eindruck davon, wie das Tool funktioniert.

Q1. Wie kann man einen einfachen Kopiervorgang durchführen?

Die grundlegende Verwendung von cp ist sehr einfach – alles, was Sie tun müssen, ist, die Quelle und das Ziel anzugeben. Der folgende Befehl kopiert beispielsweise’file1′, das im aktuellen Arbeitsverzeichnis vorhanden ist, in das Desktop-Verzeichnis:

cp file1 ~/Desktop

Q2. Wie macht man eine cp-Eingabeaufforderung vor dem Überschreiben?

Wenn das Ziel, in das Sie die Datei kopieren, bereits eine Datei mit demselben Namen enthält, überschreibt der Befehl cp die vorhandene Datei im Hintergrund. Wenn Sie möchten, können Sie jedoch die Werkzeugabfrage durchführen, bevor das Überschreiben durchgeführt wird. Dies kann durch Ausführen von cp im interaktiven Modus geschehen, der mit der Option -i aktiviert wird.

Zum Beispiel:

cp -i file1 ~/Desktop/

Wie man cp-Prompt vor dem Überschreiben macht

Wie Sie im obigen Screenshot sehen können, lässt die Option -i cp den Benutzer fragen, ob er eine bestehende Datei mit dem gleichen Namen im Zielverzeichnis überschreiben soll oder nicht.

Q3. Wie kann man cp zwingen, eine bestehende Datei nicht zu überschreiben?

Manchmal möchten Sie vielleicht nicht, dass cp eine bestehende Datei überschreibt, und Sie möchten auch nicht die interaktive Option aktivieren, die wir gerade im vorherigen Abschnitt besprochen haben. In solchen Situationen können Sie dann die Befehlszeilenoption -n verwenden.

Zum Beispiel:

cp -n file1 ~/Desktop/

Bitte beachten Sie, dass -n die Option -i überschreibt, d.h. auch wenn Sie -i mit -n verwendet haben, wird der Befehl nicht im interaktiven Modus ausgeführt.

Q4. Wie kopiert man Verzeichnisse mit cp?

Standardmäßig funktioniert der Befehl cp nur für Dateien. Wenn du versuchst, ein Verzeichnis zu kopieren, bekommst du wahrscheinlich den Fehler „cp: omitting directory“. Wenn also die Anforderung besteht, ein Verzeichnis zu kopieren, verwenden Sie die Befehlszeilenoption -r.

Zum Beispiel:

cp -r dir ~/Desktop

Q5. Wie erstellt man symbolische Links mit dem Befehl cp?

Wenn Sie möchten, können Sie cp auch bitten, einen symbolischen Link zu erstellen, anstatt tatsächlich eine Datei zu kopieren. Dies kann mit der Kommandozeilenoption -s erfolgen.

Zum Beispiel:

cp -s ~/htf-daily/file1 ~/Desktop/

Wie man symbolische Links mit dem cp-Befehl erstellt

Q6. Wie kann man erreichen, dass cp die Zieldatei nur überschreibt, wenn die Quelle neuer ist?

Manchmal ist es erforderlich, bestehende Dateien nur dann zu überschreiben, wenn die Quelldatei neuer ist – denken Sie an diesen Prozess als Aktualisierung der Datei. Dies kann mit der Kommandozeilenoption -u erfolgen.

Angenommen, Sie möchten beispielsweise’file1′, das sich im aktuellen Arbeitsverzeichnis befindet, in das Desktop-Verzeichnis kopieren, aber das Ziel hat bereits eine Datei namens’file1′. Und Sie wollen nur kopieren, wenn die Quelle neuer ist als das Ziel. Dies kann mit dem folgenden Befehl erreicht werden:

cp -u file1 ~/Desktop

Q7. Wie kann man sicherstellen, dass cp nicht symbolischen Links in der Quelle folgt?

Standardmäßig folgt der cp-Befehl symbolischen Links in der Quelle. Das bedeutet, dass, wenn Sie z.B. versuchen, eine Datei zu kopieren, die ein symbolischer Link zu einer anderen ist, dann wird standardmäßig die Kopieraktion auf die Datei ausgeführt, auf die sich der symbolische Link bezieht. Was ich meine, ist, wenn ~/Desktop/file1 ein symbolischer Link zu ~/htf-daily/file1 ist, und Sie versuchen, ~/Desktop/file1 nach ~/Downloads zu kopieren, dann wird ~/htf-daily/file1 dorthin kopiert.

Wenn die Anforderung jedoch darin besteht, den symbolischen Link selbst zu kopieren, kann dies mit der Kommandozeilenoption -P ermöglicht werden, die cp auffordert, symbolischen Links im Quelltext nicht zu folgen. In unserem Fall wäre der Befehl also:

cp -P ~/Desktop/file1 ~/Downloads/

Q8. Wie kann man nur Dateiattribute kopieren?

Manchmal konnte die Anforderung nur darin bestehen, Attribute (wie Besitz und Zeitstempel) zu kopieren, nicht aber den Inhalt der Datei. Dies kann mit der Kommandozeilenoption –attributes-only zusammen mit der Option –preserve erreicht werden.

Beispielsweise hat file1 folgende Attribute:

-rw-rw-r-- 1 root himanshu 97 Jun 14 17:18 file1

Und file2 hat folgende Attribute:

-rw-rw-r-- 1 root himanshu 179 May 25 15:09 file2

Hinweis: Sie können den Befehl ls verwenden, um diese Attribute für eine Datei zu holen.

Und die Anforderung ist, Attribute von file2 zu kopieren und sie auch für file1 zu haben, dann ist hier, wie man das machen kann:

cp --attributes-only --preserve file2 file1

Hier ist der oben genannte Befehl in Aktion:

Wie man nur Dateiattribute kopiert

Fazit

Wie Sie sehen, ist die grundlegende Verwendung des cp-Befehls nicht sehr schwer zu verstehen. In diesem Tutorial haben wir versucht, die meisten der nützlichen Befehlszeilenoptionen zu behandeln. Probieren Sie sie an Ihrer Seite aus, und gehen Sie danach auf die Man Page des Tools, um zu sehen, welche anderen Funktionen/Optionen der Befehl bietet. Falls du Zweifel oder Fragen hast, lass einen Kommentar unten.

Das könnte dich auch interessieren …