Ist es möglich, rsync
mehrere Dateien aus einem Quellverzeichnis in ein Zielverzeichnis mit mehreren nicht vorhandenen Unterverzeichnissen zu kopieren? Oder install -D
mit mehreren Dateien in ein nicht vorhandenes Verzeichnis zu verwenden?
Ich habe mir auch angesehen, cp --parents
aber den Namen des Quellverzeichnisses verwendet. Ist es möglich, cp
ein Zielverzeichnis auszuwählen, das nicht existiert, und alle Dateien nach der Erstellung dorthin zu kopieren?
Ich habe folgende Frage:Kopieren Sie eine Datei mit nur einem Befehl in ein Verzeichnis, das nicht existiert (Linux). Verbinden mit:Wie kann ich eine Datei kopieren und gleichzeitig die Zielverzeichnisse erstellen?
Aber die Lösungen zum Kopieren einer Datei sehen meiner Meinung nach etwa so aus:
cp /etc/*.conf ~/mytest/
wobei mytest nicht existiert und /etc/*.conf
mehr als eine Datei ist. Ist das mit möglich cp
und mit nur einem Befehl ist es besser?
Antwort1
Versuchen Sie es mit rsync
dem Befehl:
rsync -av /etc/*.conf ~/mytest
Im Allgemeinen können Sie
rsync -av In/*conf Out/NewDir
Die Situation vorher ist:
In
├── d1.conf
├── d2.conf
├── d3.txt
├── Sub_In_1
└── Sub_In_2.conf
└── SubIn2.Files
Out
└── Out_OldFiles
Nach dem Befehl wird
Out
├── NewDir
│ ├── d1.conf
│ ├── d2.conf
│ └── Sub_In_2.conf
│ └── SubIn2.Files
└── Out_OldFiles
In diesem Fall wählen Sie nicht nur allgemeine Dateien, *.conf
sondern auch das Verzeichnis aus Sub_In_2.conf
. Sie kopieren die gesamte Auswahl (Dateien und Verzeichnis) in ein neu erstelltes Verzeichnis NewDir
unterhalb des Out
Verzeichnisses.
Die Option -a
umfasst sogar die Option -r (Rekursion in Verzeichnisse).
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Anmerkungen
- Die
rsync
rekursive Option ist-R(und nicht-R). - In
cp
-r und -R entsprechen derselben Option. - Die Option
-v
ist nicht notwendig, sie gibt lediglich einige weitere Informationen. - Damit
rsync
können Sie es sogar zwischen zwei verschiedenen Computern verwenden undhost1
sowohl den Quellhost als auchhost2
den Zielhost verwenden.
Der letzte Befehl ist
rsync -av host1:InputDir host2:OutputDir/NewDirThatDidNotExists