Linux cp-Befehl: Dateikopieren

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie den leistungsstarken cp-Befehl in Linux erkunden, ein essentielles Werkzeug für die Verwaltung von Dateien und Verzeichnissen. Sie werden lernen, wie Sie Dateien und Verzeichnisse effizient kopieren, verschiedene Optionen verstehen, um den Kopiervorgang anzupassen, und diese Fähigkeiten in praktischen Szenarien anwenden. Am Ende dieses Labs werden Sie sich bei der Verwendung von cp für alltägliche Dateiverwaltungsaufgaben und Backups wohlfühlen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicSystemCommandsGroup -.-> linux/tree("Directory Tree Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/FileandDirectoryManagementGroup -.-> linux/wildcard("Wildcard Character") subgraph Lab Skills linux/tree -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/ls -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/cp -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/cat -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/cd -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/pwd -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} linux/wildcard -.-> lab-209744{{"Linux cp-Befehl: Dateikopieren"}} end

Grundlegendes Verständnis des cp-Befehls

Der cp-Befehl ist grundlegend für die Duplizierung von Dateien in Linux. Beginnen wir mit einem einfachen Szenario, in dem Sie eine Sicherungskopie eines wichtigen Dokuments erstellen müssen.

In Ihrem Projektverzeichnis (~/project) befindet sich eine Datei namens important_report.txt. Ihre Aufgabe besteht darin, eine Sicherungskopie dieser Datei im selben Verzeichnis zu erstellen.

Zunächst überprüfen wir die Inhalte Ihres Projektverzeichnisses:

ls ~/project

Sie sollten important_report.txt in der Liste der Dateien sehen. Sollten zusätzliche Dateien aufgelistet sein, keine Sorge; wir konzentrieren uns vorerst auf important_report.txt.

Jetzt erstellen wir eine Sicherungskopie:

cp ~/project/important_report.txt ~/project/important_report_backup.txt

Dieser Befehl erstellt eine Kopie von important_report.txt mit dem Namen important_report_backup.txt im selben Verzeichnis. Hier ist, was jeder Teil des Befehls bedeutet:

  • cp: Dies ist der Befehl zum Kopieren von Dateien.
  • ~/project/important_report.txt: Dies ist die Quelldatei, die wir kopieren möchten. Das Symbol ~ steht für Ihr Home-Verzeichnis.
  • ~/project/important_report_backup.txt: Dies ist die Zieldatei. Wir erstellen eine neue Datei, der "_backup" zum Namen hinzugefügt wurde.

Um zu überprüfen, ob die Kopie erfolgreich erstellt wurde, listen wir erneut die Inhalte des Verzeichnisses auf:

ls ~/project

Sie sollten jetzt sowohl important_report.txt als auch important_report_backup.txt sehen. Wenn Sie die neue Datei nicht sehen, überprüfen Sie, ob Sie den cp-Befehl korrekt eingegeben haben.

Kopieren von Dateien in verschiedene Verzeichnisse

Oft müssen Sie Dateien an verschiedene Speicherorte kopieren. Simulieren wir ein Szenario, in dem Sie Ihre Musik-Sammlung organisieren.

Zunächst überprüfen wir, ob das Musik-Verzeichnis existiert:

ls ~/project

Sie sollten ein Verzeichnis namens music in der Liste sehen. Wenn es nicht vorhanden ist, keine Sorge; es wurde im Setup-Skript erstellt.

Jetzt kopieren wir eine Musikdatei aus Ihrem Projektverzeichnis in das Musik-Verzeichnis:

cp ~/project/favorite_song.mp3 ~/project/music/

Dieser Befehl kopiert favorite_song.mp3 aus Ihrem Projektverzeichnis in das music-Verzeichnis. Analysieren wir den Befehl:

  • cp: Der Kopierbefehl.
  • ~/project/favorite_song.mp3: Die Quelldatei, die wir kopieren.
  • ~/project/music/: Das Zielverzeichnis. Beachten Sie den abschließenden Schrägstrich (/) – dies teilt cp mit, dass music ein Verzeichnis ist.

Um zu überprüfen, ob die Datei erfolgreich kopiert wurde, listen wir die Inhalte des Musik-Verzeichnisses auf:

ls ~/project/music

Sie sollten favorite_song.mp3 in der Liste sehen. Wenn Sie es nicht sehen, stellen Sie sicher, dass Sie den cp-Befehl korrekt eingegeben haben und dass favorite_song.mp3 in Ihrem Projektverzeichnis existiert.

Kopieren mehrerer Dateien auf einmal

Sie können mehrere Dateien mit einem einzigen Befehl kopieren, was für Batch-Operationen nützlich ist. Lassen Sie uns Ihre Dokumentensammlung organisieren.

Zunächst überprüfen wir, ob das Dokumentenverzeichnis existiert:

ls ~/project

Sie sollten ein Verzeichnis namens documents in der Liste sehen.

Jetzt kopieren wir mehrere Textdateien in dieses Dokumentenverzeichnis:

cp ~/project/report1.txt ~/project/report2.txt ~/project/notes.txt ~/project/documents/

Dieser Befehl kopiert report1.txt, report2.txt und notes.txt in das documents-Verzeichnis. So funktioniert es:

  • cp: Der Kopierbefehl.
  • ~/project/report1.txt ~/project/report2.txt ~/project/notes.txt: Dies sind die Quelldateien, die wir kopieren. Sie können so viele Dateien auflisten, wie Sie benötigen, getrennt durch Leerzeichen.
  • ~/project/documents/: Dies ist das Zielverzeichnis.

Überprüfen Sie, ob die Dateien kopiert wurden:

ls ~/project/documents

Sie sollten alle drei Dateien (report1.txt, report2.txt und notes.txt) in der Liste sehen. Wenn eine Datei fehlt, überprüfen Sie den cp-Befehl auf Tippfehler.

Verwenden der -i-Option für interaktives Kopieren

Beim Kopieren von Dateien können Sie Situationen auftreten, in denen das Zielverzeichnis bereits eine Datei mit demselben Namen enthält. Die -i-Option macht cp interaktiv und fordert Sie auf, bevor vorhandene Dateien überschrieben werden.

Simulieren wir dieses Szenario:

Zunächst schauen wir uns den Inhalt einer vorhandenen Datei an:

cat ~/project/test_file.txt

Tipp: Wenn Sie mit dem cat-Befehl nicht vertraut sind, keine Sorge; er wird später ausführlich erklärt.

Sie sollten "Original content" angezeigt bekommen.

Jetzt versuchen wir, eine Datei mit demselben Namen zu kopieren:

cp -i ~/project/new_test_file.txt ~/project/test_file.txt

Wenn Sie dazu aufgefordert werden, geben Sie y ein und drücken Sie die Eingabetaste, um die Datei zu überschreiben. Wenn Sie die Datei nicht überschreiben möchten, geben Sie n ein und drücken Sie die Eingabetaste.

Die -i-Option steht für "interaktiv". Sie teilt cp mit, um Bestätigung zu bitten, bevor vorhandene Dateien überschrieben werden. Dies ist ein Sicherheitsmaßnahme, um versehentlichen Datenverlust zu vermeiden.

Jetzt überprüfen wir den Inhalt der Datei:

cat ~/project/test_file.txt

Wenn Sie die Datei überschrieben haben, sollten Sie "New content" angezeigt bekommen. Wenn nicht, sehen Sie weiterhin "Original content".

Rekursives Kopieren mit der -r-Option

Die -r-Option ermöglicht es Ihnen, Verzeichnisse und deren Inhalte rekursiv zu kopieren. Dies ist besonders nützlich für die Sicherung ganzer Verzeichnisstrukturen.

Erstellen wir eine Sicherung des gesamten Website-Verzeichnisses:

cp -r ~/project/website ~/project/website_backup

Dieser Befehl kopiert das website-Verzeichnis und seinen gesamten Inhalt in ein neues Verzeichnis namens website_backup. Hier ist, was jeder Teil bedeutet:

  • cp: Der Kopierbefehl.
  • -r: Diese Option steht für "rekursiv". Sie teilt cp mit, Verzeichnisse und deren Inhalte zu kopieren.
  • ~/project/website: Dies ist das Quellverzeichnis, das wir kopieren.
  • ~/project/website_backup: Dies ist das neue Verzeichnis, in das wir alles kopieren.

Überprüfen Sie, ob die Sicherung erfolgreich erstellt wurde:

ls -R ~/project/website_backup

Sie sollten die gesamte Verzeichnisstruktur und die Dateien aufgelistet sehen. Die -R-Option bei ls zeigt die Inhalte von Verzeichnissen rekursiv an.

Wenn Sie die erwartete Struktur nicht sehen, stellen Sie sicher, dass Sie den cp -r-Befehl korrekt eingegeben haben.

Beibehalten von Dateiattributen mit der -p-Option

Beim Kopieren von Dateien möchten Sie möglicherweise die ursprünglichen Attribute der Datei, wie Zeitstempel und Berechtigungen, beibehalten. Die -p-Option ermöglicht Ihnen dies.

Lassen Sie uns dies demonstrieren:

Zunächst schauen wir uns die Attribute der ursprünglichen Datei an:

ls -l ~/project/old_file.txt

Notieren Sie das angezeigte Datum und die Uhrzeit.

Jetzt kopieren wir die Datei und behalten dabei ihre Attribute bei:

cp -p ~/project/old_file.txt ~/project/preserved_file.txt

Die -p-Option steht für "preserve" (beibehalten). Sie bewahrt die ursprüngliche Änderungszeit, Zugriffszeit und die Berechtigungen der Datei.

Vergleichen wir die Attribute beider Dateien:

ls -l ~/project/old_file.txt ~/project/preserved_file.txt

Sie sollten sehen, dass beide Dateien dasselbe Datum und dieselbe Uhrzeit haben. Wenn sie unterschiedlich sind, stellen Sie sicher, dass Sie die -p-Option mit cp verwendet haben.

Verwenden von Wildcards für selektives Kopieren

Wildcards (Platzhalter) ermöglichen es Ihnen, mehrere Dateien basierend auf Mustern zu kopieren. Dies ist nützlich, wenn Sie Dateien eines bestimmten Typs oder mit bestimmten Namenskonventionen kopieren möchten.

Kopieren wir alle Textdateien in das Verzeichnis text_files:

cp ~/project/*.txt ~/project/text_files/

Und kopieren wir alle PDF-Dateien in das Verzeichnis pdf_files:

cp ~/project/*.pdf ~/project/pdf_files/

Hier ist, was der Wildcard (*) bedeutet:

  • *.txt passt auf jede Datei, die mit ".txt" endet.
  • *.pdf passt auf jede Datei, die mit ".pdf" endet.

Dies ermöglicht es Ihnen, mehrere Dateien zu kopieren, ohne sie einzeln aufzulisten.

Überprüfen Sie, ob die Dateien korrekt kopiert wurden:

ls ~/project/text_files
ls ~/project/pdf_files

Sie sollten alle.txt-Dateien im text_files-Verzeichnis und alle.pdf-Dateien im pdf_files-Verzeichnis sehen.

Zusammenfassung

In diesem Lab haben Sie die wesentlichen Anwendungen des Linux-cp-Befehls beherrscht. Sie haben gelernt, wie man:

  1. Einzelne Dateien kopiert
  2. Dateien in verschiedene Verzeichnisse kopiert
  3. Mehrere Dateien auf einmal kopiert
  4. Die -i-Option für interaktives Kopieren verwendet
  5. Verzeichnisse rekursiv mit der -r-Option kopiert
  6. Dateiattribute mit der -p-Option beibehält
  7. Wildcards für selektives Kopieren verwendet

Zusätzliche cp-Optionen, die in diesem Lab nicht behandelt wurden, sind:

  • -u: Kopiere nur, wenn die Quelldatei neuer als die Zieldatei ist oder wenn die Zieldatei fehlt
  • -v: Gesprächiger Modus, der erklärt, was getan wird
  • -n: Kein Überschreiben; überschreibe keine vorhandene Datei
  • -l: Erzeuge harte Links anstelle von Dateien zu kopieren
  • -s: Erzeuge symbolische Links anstelle von Dateien zu kopieren

Der cp-Befehl ist ein leistungsstarkes Werkzeug für die Dateiverwaltung in Linux. Mit diesen Fähigkeiten sind Sie nun in der Lage, eine Vielzahl von Dateikopieraufgaben effizient und effektiv zu bewältigen.

Ressourcen