Meilleure façon de copier plusieurs répertoires dans un nouveau répertoire

33

Existe-t-il un meilleur moyen sur la ligne de commande pour accomplir essentiellement ce qui suit, mais avec une seule commande

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

Je viens de les enchaîner avec un point-virgule.

Jeff Schaller
la source

Réponses:

63

Copie de dossiers dans un autre dossier (dossier dans le dossier):

cp -r css images js backups ar/

Remarque: ceci est différent de copier uniquement le contenu lui-même (contenu des dossiers dans le dossier):

cp -r css/ images/ js/ backups/ ar/
porton
la source
4
les barres obliques font la différence! toujours soupçonné, jamais su
Peter Perháč
2
les barres obliques ne font aucune différence dans mes tests. cpne l'est pas rsync. cependant cp -r css/. images/. ar/copie le contenu sans les répertoires. ma version cp est "cp (GNU coreutils) 8.29".
sourcejedi
1

La réponse est simple, et cela fonctionne sur Debian "c'est comme ça que je l'ai fait" (testé) permet de dire que vous êtes dans / etc et que vous souhaitez copier certains fichiers et dossiers avant de formater votre disque dur (pour une raison quelconque) vous 'd tapez ce qui suit et tout ce qui est mentionné ci-dessous sera copié dans le dossier / mybackups / :

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/

comme vous pouvez le voir ci-dessus, j'ai essayé de copier des dossiers de l'extérieur, etc. en pointant son emplacement comme / boot / grub / ou / opt / et cela a fonctionné!

M03
la source
1
Je crois que -r il n'est pas nécessaire, car -a le contient déjà (via: man).
David Potočnik
-2

Vous ne pouvez pas copier deux répertoires en utilisant la cpcommande seule.

Vous pouvez cependant copier récursivement en utilisant l' -roption.

Par exemple:

cp -r <source> <destination> 
suman
la source