GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kopieren Sie Dateien und erstellen Sie gleichzeitig Zielverzeichnisse

Normalerweise kopieren wir Dateien mit Befehlen wie cp von einem Ort an einen anderen bestehenden Ort , rsync , und scp usw. Wenn der Zielspeicherort nicht existiert, erstellen wir ihn zuerst und kopieren dann die Datei an diesen neu erstellten Speicherort. Bisher kopiere ich auf diese Weise normalerweise Dateien von einem Ort zum anderen über die Befehlszeile. 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 gleichzeitig Dateien kopieren und Zielverzeichnisse erstellen.

Bitte beachten Sie, dass ich nicht davon spreche, zwei Befehle zu kombinieren. Beispielsweise könnte jeder dies tun, indem er zwei Befehle wie unten 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 ist eigentlich ein Einzeiler-Befehl. Lassen Sie mich nun zeigen, wie man dieselbe Aufgabe mit nur einem Befehl erledigt.

Dateien kopieren und gleichzeitig Zielverzeichnisse erstellen in Linux

Wir können dies mit drei verschiedenen Methoden tun. Zuerst werden wir sehen, wie man es mit install macht Befehl.

Methode 1 - mit install Befehl

Die install Der Befehl kopiert die Dateien an ein beliebiges Ziel Ihrer Wahl in Linux. Es wird speziell für diesen Zweck von Build-Systemen wie automake verwendet . Es ist Teil von GNU Coreutils, also brauchen Sie es nicht zu installieren.

Um eine Datei zu kopieren und gleichzeitig das Zielverzeichnis zu erstellen, verwenden Sie install Befehl einfach ausführen:

$ install -D source-file destination-directory

Beispiel:

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

$ install -D sk.txt ostechnix/sk.txt

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

$ ls ostechnix/
sk.txt

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 von install Befehl. 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, install Befehl wird es nicht kopieren und den folgenden Fehler anzeigen:

$ 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 install an mehrere Ziele zu kopieren Befehl.

Wir können auch Dateien kopieren und gleichzeitig den Besitz und die Berechtigungen ändern, indem wir install verwenden Befehl, 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 Handbuchseite.

$ man install

Methode 2 - mit cp Befehl

Im Allgemeinen verwenden wir cp Befehl zum Kopieren von Dateien von einem Ort zum anderen. Der cp Befehl hat eine Option namens --parents Dadurch können wir die gesamte Verzeichnisstruktur der Quelldatei kopieren und im Ziel speichern.

Sagen wir zum Beispiel die sk.txt Datei wird in ~/Downloads gespeichert Verzeichnis und Sie wollten es nach ~/Documents kopieren Verzeichnis. Wenn Sie die Datei mit cp kopieren Befehl von ~/Downloads nach ~/Documents , wird die Datei in der folgenden Verzeichnisstruktur 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 tree aus Befehl zum Überprüfen von ~/Documents Inhalt des Verzeichnisses:

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

1 directory, 1 file

Denken Sie daran, dass wir keine Verzeichnisse innerhalb von ~/Documents erstellt haben Lage. Die --parents Option des cp Der Befehl hat die Verzeichnisstruktur der Quelldatei beibehalten.

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

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

Methode 3 - mit rsync Befehl

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

$ rsync sk.txt ostechnix/

Wo das Verzeichnis namens ostechnix muss nicht vorhanden sein. Rsync erstellt es automatisch und speichert die Quelldatei darin.

Von diesen drei Befehlen bevorzuge ich install Befehl. Weil ich mit install verschachtelte Verzeichnisse (Verzeichnisse in einem anderen Verzeichnis) erstellen kann Befehl. Der cp und rsync Befehle können meines Wissens nur ein Verzeichnis erstellen. Bitte korrigieren Sie mich, wenn ich falsch liege.

Verwandte Lektüre:

  • So behalten Sie Eigentums- und Dateiberechtigungen beim Kopieren von Dateien oder Verzeichnissen bei

Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. So erstellen Sie einen Alias ​​und verwenden den Alias-Befehl in Linux

  3. Kopieren Sie Dateien und Verzeichnisse unter Linux

  4. Gleichzeitig kopieren und chmod/chown

  5. Ping und tcpdump gleichzeitig

So verschieben Sie Dateien und Verzeichnisse in Linux (mv-Befehl)

So verwenden Sie den cp-Befehl zum Kopieren von Dateien und Verzeichnissen

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

4 Möglichkeiten zum Übertragen von Dateien und Verzeichnissen unter Linux

Stat-Befehl:Attribute von Dateien und Verzeichnissen anzeigen

Sicheres Kopieren von Dateien mit dem SCP-Befehl