Website-Suche

Kopieren Sie Dateien und erstellen Sie gleichzeitig Zielverzeichnisse unter Linux


Normalerweise kopieren wir Dateien von einem Speicherort an einen anderen vorhandenen Speicherort mit Befehlen wie cp, rsync und scp usw. Wenn dies beim Zielspeicherort nicht der Fall ist existiert, erstellen wir es zuerst und kopieren dann die Datei an den neu erstellten Speicherort. Bisher kopiere ich Dateien normalerweise über die Befehlszeile von einem Speicherort an einen anderen. Wussten Sie, dass wir eine Datei kopieren und das Zielverzeichnis automatisch erstellen können, wenn es nicht existiert? NEIN? Kein Problem! In dieser Anleitung erfahren Sie, wie Sie unter Linux mit einem einzigen Befehl Dateien kopieren und gleichzeitig Zielverzeichnisse erstellen.

Bitte beachten Sie, dass ich nicht über die Kombination zweier Befehle spreche. Dies könnte beispielsweise jeder tun, indem er zwei Befehle wie den folgenden kombiniert:

mkdir -p destination && cp source_file destination

Dies ist jedoch kein einzelner Befehl. Hier haben wir zwei Befehle verwendet, nämlich mkdir und cp. Es handelt sich eigentlich um einen einzeiligen Befehl. Lassen Sie mich nun zeigen, wie Sie dieselbe Aufgabe mit nur einem Befehl ausführen können.

Kopieren Sie Dateien und erstellen Sie gleichzeitig Zielverzeichnisse unter Linux

Wir können dies auf drei verschiedene Arten tun. Zuerst werden wir sehen, wie man das mit dem Befehl install macht.

Methode 1 – Verwendung des Befehls install

Der Befehl install kopiert die Dateien an ein beliebiges Ziel Ihrer Wahl unter Linux. Es wird speziell für diesen Zweck von Build-Systemen wie automake verwendet. Es ist Teil der GNU-Coreutils und muss daher nicht installiert werden.

Um eine Datei zu kopieren und gleichzeitig das Zielverzeichnis mit dem Befehl install zu erstellen, führen Sie einfach Folgendes aus:

install -D source-file destination-directory

Beispiel:

Der folgende Befehl kopiert eine Datei mit dem Namen sk.txt in ein Zielverzeichnis mit dem Namen ostechnix. Bitte beachten Sie, dass das Zielverzeichnis nicht existiert. Wir werden die Datei kopieren und gleichzeitig das Zielverzeichnis mit dem Befehl install wie folgt erstellen:

install -D sk.txt ostechnix/sk.txt

Überprüfen Sie, ob die Datei in das Verzeichnis ostechnix kopiert wurde, indem Sie ihren Inhalt mit dem Befehl ls auflisten:

ls ostechnix/
sk.txt

Kopieren Sie eine Datei und erstellen Sie gleichzeitig ein Zielverzeichnis mit dem Installationsbefehl

Sehen? Ich habe das Zielverzeichnis vorher nicht erstellt. Der Installationsbefehl hat das Verzeichnis automatisch erstellt und die Datei darin gespeichert.

Praktisch, oder? In der Tat! Dies ist eine der nützlichen Funktionen des Befehls install. Man kann dies in Shell-Skripten verwenden.

Bei dieser Methode gibt es einige Einschränkungen. Sie müssen den Namen der Quelldatei am Ende des Zielspeicherorts angeben. Wenn Sie den Dateinamen nicht angeben, kopiert der Befehl install ihn nicht und zeigt die folgende Fehlermeldung an:

install -D sk.txt ostechnix/
install: target 'ostechnix/' is not a directory: No such file or directory

Sie können jeweils eine Datei kopieren. Es gibt keine Möglichkeit, mehrere Dateien mit dem Befehl install an mehrere Ziele zu kopieren.

Wir können auch Dateien kopieren und gleichzeitig den Besitz und die Berechtigungen ändern, indem wir den Befehl install verwenden, wie in der folgenden Anleitung beschrieben.

  • So kopieren Sie Dateien und ändern gleichzeitig den Besitz und die Berechtigungen

Weitere Einzelheiten zum Installationsbefehl finden Sie auf der entsprechenden manuellen Seite.

man install

Methode 2 – Verwendung des Befehls cp

Im Allgemeinen verwenden wir den Befehl cp, um Dateien von einem Ort an einen anderen zu kopieren. Der Befehl cp verfügt über eine Option namens --parents, die es uns ermöglicht, die gesamte Verzeichnisstruktur der Quelldatei zu kopieren und im Ziel zu speichern.

Nehmen wir zum Beispiel an, dass die Datei sk.txt im Verzeichnis ~/Downloads gespeichert ist und Sie sie nach ~/Documents kopieren möchten Verzeichnis. Wenn Sie die Datei mit dem Befehl cp von ~/Downloads nach ~/Documents kopieren, wird die Datei in einer Verzeichnisstruktur wie dieser -> gespeichert ~/Documents/Downloads/sk.txt.

Lassen Sie es uns in Echtzeit tun und sehen, was passiert.

cp --parents Downloads/sk.txt ~/Documents/

Führen Sie nun den Befehl tree aus, um den Inhalt des Verzeichnisses ~/Documents zu überprüfen:

tree Documents/
Documents/
└── Downloads
    └── sk.txt

1 directory, 1 file

Kopieren Sie eine Datei und erstellen Sie gleichzeitig ein Zielverzeichnis mit dem Befehl cp

Denken Sie daran, dass wir innerhalb des Speicherorts ~/Documents keine Verzeichnisse erstellt haben. Die Option --parents des Befehls cp bewahrte die Verzeichnisstruktur der Quelldatei.

Im Gegensatz zum Befehl install müssen Sie den Dateinamen nicht am Ende des Zielverzeichnisses angeben.

Dies hat nicht direkt mit unserem Thema zu tun. Allerdings hat der Befehl cp die Zielverzeichnisse automatisch erstellt, d. h. die Verzeichnisstruktur der Quelldatei beibehalten.

Methode 3 – Verwendung des Befehls rsync

Rsync ist eine ideale Lösung zum Kopieren und Sichern von Daten zwischen lokalen und Remote-Verzeichnissen. Um Dateien zu kopieren und gleichzeitig Zielverzeichnisse mit dem Befehl rsync zu erstellen, führen Sie Folgendes aus:

rsync sk.txt ostechnix/

Wobei das Verzeichnis mit dem Namen ostechnix nicht existieren muss. Rsync erstellt es automatisch und speichert die Quelldatei darin.

Kopieren Sie eine Datei und erstellen Sie gleichzeitig ein Zielverzeichnis mit dem Befehl rsync

Unter diesen drei Befehlen bevorzuge ich den Befehl install. Denn ich kann mit dem Befehl install verschachtelte Verzeichnisse (Verzeichnisse innerhalb eines anderen Verzeichnisses) erstellen. Die Befehle cp und rsync können meines Wissens nur ein Verzeichnis erstellen. Bitte korrigieren Sie mich, wenn ich falsch liege.

Verwandte Lektüre:

  • So bleiben Eigentums- und Dateiberechtigungen beim Kopieren von Dateien oder Verzeichnissen erhalten

Verwandte Artikel