Wenn Sie neu in der Linux-Befehlszeile sind, haben Sie wahrscheinlich diese Frage im Kopf:Wie kopiere ich ein Verzeichnis und die darin enthaltenen Dateien in ein anderes Verzeichnis in der Linux-Befehlszeile?
So kopieren Sie ein Verzeichnis unter Linux:
cp -r source_directory destination_directory
Sie wissen wahrscheinlich bereits, dass Sie mit dem cp-Befehl Dateien in Linux kopieren können. Wissen Sie, dass Sie denselben cp-Befehl verwenden können, um einen Ordner in der Linux-Befehlszeile zu kopieren?
Ha! Sie haben das bereits versucht und vielleicht diesen Fehler erhalten:
cp: -r not specified; omitting directory 'test_dir'
Lassen Sie mich Ihnen ein oder zwei Dinge über das Kopieren von Verzeichnissen in Linux zeigen.
Verzeichnis in Linux-Befehlszeile kopieren
Sie können definitiv denselben cp-Befehl verwenden, aber mit der rekursiven Option -r, um einen Ordner mit seinem Inhalt in einen anderen Ordner zu kopieren. Der oben erwähnte Fehler weist auch darauf hin, dass Sie die Option -r verpasst haben.
Alles, was Sie tun müssen, ist, den Befehl auf diese Weise zu verwenden:
cp -r source_directory destination_directory
Und wenn Sie jetzt den Befehl ls für das Zielverzeichnis verwenden, sollte es das gesamte Quellverzeichnis enthalten.
Die Option -r ermöglicht die rekursive Option. Das bedeutet, dass der gesamte Inhalt des Verzeichnisses einschließlich seiner eigenen Unterverzeichnisse, alles im Verzeichnis zum Ziel kopiert wird.
Ein paar Dinge, die Sie beim Kopieren von Verzeichnissen unter Linux beachten sollten
Hier sind ein paar Dinge zu beachten und Tipps zum Kopieren von Ordnern.
Das Zielverzeichnis existiert nicht? Es wird erstellt
Wenn das Zielverzeichnis nicht existiert (aber der Pfad existiert), wird es bis zu einer Ebene erstellt (wird im nächsten Abschnitt erklärt). Allerdings wird jetzt der Inhalt des Quellverzeichnisses kopiert, nicht das Quellverzeichnis selbst.
Wenn Sie beispielsweise Folgendes tun:
cp -r source_directory non_existing_directory
Das nicht_existierende_Verzeichnis wird mit dem Inhalt des Quellenverzeichnisses erstellt, enthält jedoch nicht das Quellenverzeichnis. Es werden nur die Dateien von source_directory kopiert. Es wäre so, als wäre non_existing_directory eine Kopie von source_directory.
[email protected]:~$ ls
test_dir
[email protected]:~$ cp -r test_dir new_dir
[email protected]:~$ tree
.
├── new_dir
│ ├── c.xyz
│ ├── myzip1.zip
│ └── myzip2.zip
└── test_dir
├── c.xyz
├── myzip1.zip
└── myzip2.zip
2 directories, 6 files
Beim Kopieren kann kein verschachteltes Verzeichnis erstellt werden
Sie können den obigen Befehl nicht verwenden, um eine verschachtelte Verzeichnisstruktur zu erstellen.
Wenn Sie beispielsweise versuchen, cp -r source_dir dir1/dir2/dir3 zu verwenden, aber dir2 und dir3 nicht existieren, wird die verschachtelte Verzeichnisstruktur nicht erstellt und der Befehl schlägt fehl.
Behält die ursprünglichen Dateiattribute bei
Ein letzter Tipp, um die Dinge kurz zu halten. Wenn Sie die Option -a zusammen mit der Option -r verwenden, werden die ursprünglichen Dateiinformationen wie Dateiberechtigungen, Dateizeitstempel usw. beibehalten. Das Verzeichnis wird am neuen Speicherort archiviert, anstatt es neu zu erstellen.
Das ist es
Diese vielen Informationen sollten ausreichen, um zu wissen, wie man ein Verzeichnis unter Linux kopiert. Wenn Sie Fragen oder Anregungen haben, können Sie gerne einen Kommentar hinterlassen.