Linux-Dateikopieren

LinuxLinuxBeginner
Jetzt üben

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

Einführung

Das Linux-Dateisystem bietet leistungsstarke Tools für die Verwaltung Ihrer Dateien und Verzeichnisse. Einer der wichtigsten Befehle, den Sie regelmäßig verwenden werden, ist der cp-Befehl, der es Ihnen ermöglicht, Dateien und Verzeichnisse von einem Ort an einen anderen zu kopieren.

In diesem Lab lernen Sie, wie Sie den cp-Befehl verwenden, um einzelne Dateien und mehrere Dateien auf einmal zu kopieren. Diese grundlegende Fähigkeit ist entscheidend für die Datensicherung, die Organisation Ihres Dateisystems und die effektive Verwaltung Ihrer Linux-Umgebung.

Am Ende dieses Labs können Sie den cp-Befehl mit verschiedenen Optionen sicher einsetzen, um Ihre Dateikopierbedürfnisse zu befriedigen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cp("File Copying") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("Directory Creating") subgraph Lab Skills linux/echo -.-> lab-271253{{"Linux-Dateikopieren"}} linux/ls -.-> lab-271253{{"Linux-Dateikopieren"}} linux/touch -.-> lab-271253{{"Linux-Dateikopieren"}} linux/cp -.-> lab-271253{{"Linux-Dateikopieren"}} linux/cat -.-> lab-271253{{"Linux-Dateikopieren"}} linux/cd -.-> lab-271253{{"Linux-Dateikopieren"}} linux/mkdir -.-> lab-271253{{"Linux-Dateikopieren"}} end

Erstellen von Verzeichnissen und Dateien

Bevor wir das Kopieren von Dateien üben können, müssen wir einige Verzeichnisse und Dateien erstellen, mit denen wir arbeiten können. In diesem Schritt erstellen Sie eine Verzeichnisstruktur und einige Beispieldateien.

Zunächst navigieren Sie in das Projektverzeichnis, in dem Sie arbeiten werden:

cd ~/project

Jetzt erstellen wir ein Verzeichnis namens data-files, das unsere Beispieldateien enthalten wird:

mkdir data-files

Nach Ausführung dieses Befehls sollte keine Ausgabe angezeigt werden, was für viele Linux-Befehle normal ist, wenn sie erfolgreich ausgeführt werden.

Als Nächstes navigieren wir in dieses neue Verzeichnis:

cd data-files

Jetzt erstellen wir drei leere Textdateien, die wir für unsere Kopierübungen verwenden werden:

touch apple.txt orange.txt grape.txt

Der touch-Befehl erstellt leere Dateien, wenn sie nicht existieren, oder aktualisiert die Änderungszeit, wenn sie bereits existieren.

Lassen Sie uns überprüfen, ob unsere Dateien korrekt erstellt wurden, indem wir den Inhalt des aktuellen Verzeichnisses auflisten:

ls -l

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

total 0
-rw-r--r-- 1 labex labex 0 [date] apple.txt
-rw-r--r-- 1 labex labex 0 [date] grape.txt
-rw-r--r-- 1 labex labex 0 [date] orange.txt

Die Ausgabe zeigt, dass wir erfolgreich drei leere Dateien erstellt haben (die Dateigröße beträgt 0 Bytes).

Kopieren einer einzelnen Datei

In diesem Schritt lernen Sie, wie Sie eine einzelne Datei von einem Ort an einen anderen mit dem cp-Befehl kopieren können.

Die grundlegende Syntax des cp-Befehls lautet:

cp [options] source_file destination

Dabei gilt:

  • source_file ist die Datei, die Sie kopieren möchten.
  • destination ist der Ort, an den Sie die Datei kopieren möchten (kann ein Verzeichnis oder ein neuer Dateiname sein).

Stellen Sie zunächst sicher, dass Sie sich im data-files-Verzeichnis befinden:

cd ~/project/data-files

Fügen Sie nun einigen Inhalt in die apple.txt-Datei ein, damit Sie überprüfen können, ob der Inhalt korrekt kopiert wird:

echo "This is sample content for the apple file." > apple.txt

Das >-Symbol leitet die Ausgabe des echo-Befehls in die Datei um und überschreibt dabei eventuell vorhandenen Inhalt.

Kopieren Sie nun die apple.txt-Datei in das übergeordnete Verzeichnis unter einem neuen Namen:

cp apple.txt ../apple_copy.txt

Zerlegen wir diesen Befehl:

  • cp ist der Kopierbefehl.
  • apple.txt ist die Quell-Datei, die wir kopieren möchten.
  • ../apple_copy.txt gibt an, dass wir in das übergeordnete Verzeichnis (..) kopieren möchten und die neue Datei apple_copy.txt heißen soll.

Überprüfen Sie, ob die Datei korrekt kopiert wurde, indem Sie ihren Inhalt prüfen:

cat ../apple_copy.txt

Sie sollten die folgende Ausgabe sehen:

This is sample content for the apple file.

Dies bestätigt, dass unsere Datei mit ihrem Inhalt erfolgreich kopiert wurde.

Kopieren mehrerer Dateien auf einmal

In diesem Schritt lernen Sie, wie Sie mehrere Dateien auf einmal in ein neues Verzeichnis kopieren können. Dies ist besonders nützlich, wenn Sie mehrere Dateien gleichzeitig sichern oder organisieren müssen.

Zunächst navigieren wir zurück in das Projektverzeichnis:

cd ~/project

Jetzt erstellen wir ein neues Verzeichnis namens backup, in das wir unsere Dateien kopieren werden:

mkdir backup

Bevor wir die Dateien kopieren, fügen wir den verbleibenden Textdateien etwas Inhalt hinzu, damit wir den Kopiervorgang besser überprüfen können:

echo "This is sample content for the orange file." > data-files/orange.txt
echo "This is sample content for the grape file." > data-files/grape.txt

Jetzt kopieren wir alle Textdateien aus dem data-files-Verzeichnis in das backup-Verzeichnis mithilfe eines Wildcard-Musters:

cp data-files/*.txt backup/

In diesem Befehl:

  • cp ist der Kopierbefehl.
  • data-files/*.txt verwendet das Wildcard-Zeichen *, um alle Dateien mit der .txt-Erweiterung im data-files-Verzeichnis zu treffen.
  • backup/ ist das Zielverzeichnis, in das wir die Dateien kopieren möchten.

Lassen Sie uns überprüfen, ob alle Dateien korrekt kopiert wurden, indem wir den Inhalt des Backup-Verzeichnisses auflisten:

ls -l backup/

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

total 12
-rw-r--r-- 1 labex labex 41 [date] apple.txt
-rw-r--r-- 1 labex labex 41 [date] grape.txt
-rw-r--r-- 1 labex labex 42 [date] orange.txt

Lassen Sie uns auch den Inhalt einer der kopierten Dateien überprüfen, um sicherzustellen, dass die Daten korrekt kopiert wurden:

cat backup/orange.txt

Sie sollten sehen:

This is sample content for the orange file.

Dies bestätigt, dass alle unsere Dateien mit ihrem Inhalt erfolgreich in das Backup-Verzeichnis kopiert wurden.

Erweiterte Optionen zum Dateikopieren

In diesem Schritt lernen Sie einige nützliche Optionen des cp-Befehls kennen, die Ihre Dateikopieraufgaben effizienter gestalten können.

Beginnen wir damit, zurück in das Projektverzeichnis zu navigieren:

cd ~/project

Beibehalten von Dateiattributen mit -p

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

cp -p data-files/apple.txt backup/apple_preserved.txt

Vergleichen wir die Originaldatei und die kopierte Datei mit beibehaltenen Attributen:

ls -l data-files/apple.txt backup/apple.txt backup/apple_preserved.txt

Sie werden feststellen, dass backup/apple_preserved.txt den gleichen Zeitstempel wie die Originaldatei hat, während backup/apple.txt (die wir zuvor ohne die -p-Option kopiert haben) einen neueren Zeitstempel aufweist.

Rekursives Kopieren mit -r

Um Verzeichnisse zusammen mit ihrem Inhalt zu kopieren, müssen Sie die -r-Option (rekursiv) verwenden. Erstellen wir eine verschachtelte Verzeichnisstruktur, um dies zu demonstrieren:

mkdir -p data-files/nested/deep
echo "This is a nested file." > data-files/nested/nested_file.txt
echo "This is a deep nested file." > data-files/nested/deep/deep_file.txt

Jetzt kopieren wir das gesamte data-files-Verzeichnis und seinen Inhalt an einen neuen Ort:

cp -r data-files data-files-backup

Überprüfen wir, ob die Verzeichnisstruktur und die Dateien korrekt kopiert wurden:

find data-files-backup -type f | sort

Sie sollten eine Ausgabe sehen, die alle Dateien in der kopierten Verzeichnisstruktur auflistet:

data-files-backup/apple.txt
data-files-backup/grape.txt
data-files-backup/nested/deep/deep_file.txt
data-files-backup/nested/nested_file.txt
data-files-backup/orange.txt

Interaktiver Modus mit -i

Beim Kopieren von Dateien können Sie versehentlich vorhandene Dateien überschreiben. Die -i-Option (interaktiv) fordert Sie auf, bevor eine Datei überschrieben wird:

cp -i data-files/apple.txt backup/apple.txt

Da backup/apple.txt bereits existiert, sehen Sie eine Aufforderung, ob Sie die Datei überschreiben möchten:

cp: overwrite 'backup/apple.txt'?

Sie können mit y antworten, um die Datei zu überschreiben, oder mit n, um den Vorgang abzubrechen.

Diese erweiterten Optionen machen den cp-Befehl noch leistungsfähiger und flexibler für Ihre Dateiverwaltungsanforderungen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Linux-Befehl cp effektiv nutzen können, um Dateien und Verzeichnisse zu kopieren. Sie haben mit den Grundlagen des Erstellens von Verzeichnissen und Dateien begonnen und sind dann zum Kopieren einzelner Dateien und mehrerer Dateien auf einmal fortgeschritten.

Grundlegende Konzepte, die behandelt wurden:

  1. Grundlegendes Dateikopieren: Verwenden des cp-Befehls, um eine einzelne Datei von einem Ort an einen anderen zu kopieren.

    cp source_file destination
  2. Kopieren mehrerer Dateien: Verwenden von Wildcards, um mehrere Dateien mit einem Befehl zu kopieren.

    cp source_directory/*.txt destination_directory/
  3. Erweiterte Optionen:

    • -p: Beibehalten von Dateiattributen (Zeitstempel, Berechtigungen usw.)
    • -r: Rekursives Kopieren von Verzeichnissen und ihrem Inhalt
    • -i: Interaktiver Modus, um versehentliches Überschreiben zu verhindern

Diese Fähigkeiten zum Dateikopieren sind grundlegend für eine effektive Dateiverwaltung in Linux. Egal, ob Sie wichtige Dateien sichern, Ihre Verzeichnisse organisieren oder Anwendungen bereitstellen, der cp-Befehl wird ein wesentliches Werkzeug in Ihrem Linux-Werkzeugkasten sein.

Denken Sie daran, dass die Linux-Befehlszeile viele leistungsstarke Werkzeuge für die Dateimanipulation bietet, und der cp-Befehl ist nur eines davon. Wenn Sie Ihre Linux-Reise fortsetzen, werden Sie entdecken, wie diese Werkzeuge kombiniert werden können, um komplexe Dateioperationen effizient durchzuführen.