Besserer Weg, um mehrere Verzeichnisse in ein neues Verzeichnis zu kopieren

33

Gibt es einen besseren Weg in der Befehlszeile, um im Wesentlichen das Folgende zu erreichen, aber mit einem einzigen Befehl?

cp -r css/ ar/
cp -r images/ ar/
cp -r js/ ar/
cp -r backups/ ar/

Ich habe sie gerade mit einem Semikolon aneinander gereiht.

Jeff Schaller
quelle

Antworten:

63

Ordner in einen anderen Ordner kopieren (Ordner in Ordner):

cp -r css images js backups ar/

Hinweis: Dies unterscheidet sich vom Kopieren nur der Inhalte selbst (Inhalte von Ordnern in Ordnern):

cp -r css/ images/ js/ backups/ ar/
porton
quelle
4
Die Schrägstriche machen einen Unterschied! immer vermutet, nie gewusst
Peter Perháč
2
Schrägstriche machen bei meinen Tests keinen Unterschied. cpist nicht rsync. jedoch cp -r css/. images/. ar/macht die Inhalte ohne die Verzeichnisse kopieren. meine cp version ist "cp (GNU coreutils) 8.29".
Sourcejedi
1

Die Antwort ist einfach und funktioniert unter Debian. "Das ist tatsächlich so, wie ich es gemacht habe." (Getestet) Nehmen wir an, Sie befinden sich in / etc und möchten einige Dateien und Ordner kopieren, bevor Sie Ihre Festplatte formatieren (aus irgendeinem Grund) Geben Sie Folgendes ein und alles, was unten erwähnt wird, wird in den Ordner / mybackups / kopiert :

sudo cp -r -a apt/ bash.bashrc environment hosts init.d/ init/ nginx/ proxychains.conf sudoers sysctl.d/ profile.d/ grub.d/ /boot/grub/ /opt/ /root/ /var/www/ /mybackups/

Wie Sie oben sehen können, habe ich versucht, Ordner von außerhalb usw. zu kopieren, indem ich auf den Speicherort wie / boot / grub / oder / opt / zeigte, und es hat funktioniert!

M03
quelle
1
Ich glaube -r wird dort nicht benötigt, da -a es bereits enthält (via: man).
David Potočnik
-2

Sie können zwei Verzeichnisse nicht cpallein mit dem Befehl kopieren .

Sie können jedoch mithilfe der -rOption rekursiv kopieren .

Beispielsweise:

cp -r <source> <destination> 
suman
quelle