Linux Dateikopie

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 Werkzeuge zur Verwaltung Ihrer Dateien und Verzeichnisse. Einer der wichtigsten Befehle, die Sie regelmäßig verwenden werden, ist der Befehl cp, mit dem Sie Dateien und Verzeichnisse von einem Ort an einen anderen kopieren können.

In diesem Lab lernen Sie, wie Sie den Befehl cp verwenden, um einzelne Dateien und mehrere Dateien gleichzeitig 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 werden Sie in der Lage sein, den Befehl cp mit verschiedenen Optionen sicher zu verwenden, um Ihre Anforderungen an das Kopieren von Dateien zu erfüllen.


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 Dateikopie"}} linux/ls -.-> lab-271253{{"Linux Dateikopie"}} linux/touch -.-> lab-271253{{"Linux Dateikopie"}} linux/cp -.-> lab-271253{{"Linux Dateikopie"}} linux/cat -.-> lab-271253{{"Linux Dateikopie"}} linux/cd -.-> lab-271253{{"Linux Dateikopie"}} linux/mkdir -.-> lab-271253{{"Linux Dateikopie"}} 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.

Navigieren Sie zunächst zu dem Projektverzeichnis, in dem Sie arbeiten werden:

cd ~/project

Erstellen wir nun ein Verzeichnis namens data-files, das unsere Beispieldateien enthalten soll:

mkdir data-files

Nach dem Ausführen dieses Befehls sollten Sie keine Ausgabe sehen, 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

Erstellen wir nun drei leere Textdateien, die wir für unsere Kopierübungen verwenden werden:

touch apple.txt orange.txt grape.txt

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

Überprüfen wir, ob unsere Dateien ordnungsgemäß erstellt wurden, indem wir den Inhalt des aktuellen Verzeichnisses auflisten:

ls -l

Sie sollten eine ähnliche Ausgabe wie diese 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 Byte).

An diesem Punkt sieht Ihre Verzeichnisstruktur wie folgt aus:

~/project/
└── data-files/
    ├── apple.txt
    ├── orange.txt
    └── grape.txt

Wir werden in den folgenden Schritten mit diesen Dateien arbeiten und Sie werden lernen, wie Sie sie an verschiedene Orte kopieren.

Kopieren einer einzelnen Datei

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

Die grundlegende Syntax des Befehls cp lautet:

cp [options] source_file destination

Wobei:

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

Wir befinden uns derzeit im Verzeichnis data-files. Fügen wir unserer Datei apple.txt etwas Inhalt hinzu, damit wir überprüfen können, ob der Inhalt korrekt kopiert wird:

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

Das Zeichen > leitet die Ausgabe des Befehls echo in die Datei um und überschreibt dabei alle vorhandenen Inhalte.

Kopieren wir nun die Datei apple.txt in das übergeordnete Verzeichnis (das ist ~/project) mit einem neuen Namen:

cp apple.txt ../apple_copy.txt

Aufschlüsselung dieses Befehls:

  • cp ist der Kopierbefehl
  • apple.txt ist die Quelldatei, die wir kopieren möchten
  • ../apple_copy.txt gibt an, dass wir in das übergeordnete Verzeichnis (..) mit dem neuen Dateinamen apple_copy.txt kopieren möchten

Überprüfen wir, ob die Datei korrekt kopiert wurde, indem wir ihren Inhalt überprü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 erfolgreich mit ihrem Inhalt kopiert wurde.

Nach dieser Operation sieht Ihre Verzeichnisstruktur nun wie folgt aus:

~/project/
├── data-files/
│   ├── apple.txt
│   ├── orange.txt
│   └── grape.txt
└── apple_copy.txt

Kopieren mehrerer Dateien gleichzeitig

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

Navigieren wir zunächst zurück zum Projektverzeichnis (da wir uns derzeit im Verzeichnis data-files befinden):

cd ~/project

Erstellen wir nun 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

Kopieren wir nun alle Textdateien aus dem Verzeichnis data-files in das Verzeichnis backup mithilfe eines Wildcard-Musters (Platzhaltermusters):

cp data-files/*.txt backup/

In diesem Befehl:

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

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

ls -l backup/

Sie sollten eine ähnliche Ausgabe wie diese 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

Überprüfen wir auch den Inhalt einer der kopierten Dateien, 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 erfolgreich mit ihrem Inhalt in das Backup-Verzeichnis kopiert wurden.

Nach dieser Operation sieht Ihre Verzeichnisstruktur nun wie folgt aus:

~/project/
├── data-files/
│   ├── apple.txt
│   ├── orange.txt
│   └── grape.txt
├── backup/
│   ├── apple.txt
│   ├── orange.txt
│   └── grape.txt
└── apple_copy.txt

Erweiterte Optionen zum Kopieren von Dateien

In diesem Schritt lernen Sie einige nützliche Optionen des Befehls cp kennen, die Ihre Aufgaben beim Kopieren von Dateien effizienter gestalten können.

Beginnen wir damit, zurück zum Projektverzeichnis zu navigieren:

cd ~/project

Beibehalten von Dateiattributen mit -p

Wenn Sie Dateien kopieren, möchten Sie möglicherweise die ursprünglichen Dateiattribute wie Zeitstempel, Eigentümerschaft und Berechtigungen beibehalten. Mit der Option -p können Sie dies tun:

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

Vergleichen wir die Originaldatei und die beibehaltene Kopie:

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

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

Erstellen rekursiver Kopien mit -r

Um Verzeichnisse zusammen mit ihrem Inhalt zu kopieren, müssen Sie die Option -r (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

Kopieren wir nun das gesamte Verzeichnis data-files 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 Option -i (interaktiv) fordert Sie auf, bevor Sie eine Datei überschreiben:

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

Da backup/apple.txt bereits existiert, werden Sie aufgefordert zu fragen, ob Sie sie überschreiben möchten:

cp: overwrite 'backup/apple.txt'?

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

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

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den Linux-Befehl cp verwenden, um Dateien und Verzeichnisse effektiv zu kopieren. Sie begannen mit den Grundlagen des Erstellens von Verzeichnissen und Dateien und gingen dann zum Kopieren einzelner Dateien und mehrerer Dateien gleichzeitig über.

Wichtige behandelte Konzepte:

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

    cp source_file destination
  2. Kopieren mehrerer Dateien: Verwenden von Wildcards (Platzhaltern), um mehrere Dateien in 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 deren Inhalt
    • -i: Interaktiver Modus, um versehentliches Überschreiben zu verhindern

Diese Fähigkeiten zum Kopieren von Dateien sind grundlegend für eine effektive Dateiverwaltung in Linux. Ob Sie wichtige Dateien sichern, Ihre Verzeichnisse organisieren oder Anwendungen bereitstellen, der Befehl cp ist ein unverzichtbares Werkzeug in Ihrem Linux-Toolkit.

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