Je veux copier un répertoire d'un endroit à un autre via la ligne de commande

127

Je veux copier un répertoire d'un endroit à un autre dossier.

sudo cpest la commande, mais après quoi dois-je taper? La destination ou la source en premier?

pradeep
la source
10
Est-ce que ça man cpaide?
Portablejim

Réponses:

198

Le -adrapeau est probablement ce que vous recherchez:

cp -a /path/from /path/to

L' -aindicateur active le comportement récursif (ce qui peut également être fait avec l' -Rindicateur) et tente également de préserver les métadonnées telles que la propriété du fichier, les autorisations, les horodatages, les liens, etc.

Vous ne devriez en avoir besoin que sudosi vous copiez dans un emplacement n'appartenant pas à l'utilisateur actuel, si l'utilisateur actuel ne dispose pas des autorisations en lecture pour les fichiers en cours de copie ou si vous souhaitez conserver la propriété des fichiers n'appartenant pas à l'utilisateur actuel. utilisateur.

James Henstridge
la source
4
de plus, en règle générale, c'est toujours comme ça [command] [source] [destination]. Cela vaut à mv, cp, ren.
Vineet Menon
1
@VineetMenon Vous voulez probablement dire mv, pas ren.
jcollado
@jcollado: j'ai déjà ajouté mv!!
Vineet Menon
@VineetMenon Oui, vous avez raison, je n'ai pas vu que cela mvfigurait déjà dans la liste. Quoi qu'il en soit, ce que je voulais dire, c'est que, pour autant que je sache, il n'y a pas de rencommande (à moins que vous n'ayez un alias ou quelque chose qui soit défini).
mardi
1
@jcollado: haha ​​... c'était mon alias pour rename...: D
Vineet Menon
28

Si vous voulez copier le répertoire, utilisez la commande ci-dessous:

sudo cp -R Source_Folder Destination_Folder

Cette commande peut également être utilisée pour copier des fichiers, en supprimant simplement le "-R" utilisé pour copier la structure récursive des dossiers internes (s’il en existe dans le chemin Source_Folder que nous avons mentionné.)

Un autre exemple:

sudo cp -R /var/www/* /home/test_user/

S'il vous plaît n'hésitez pas à laisser un commentaire en cas de problème.

Hrish
la source
7

Pour copier un dossier via un terminal, vous pouvez utiliser

cp -a /source/. /dest/

L'option -a est une option récursive améliorée, qui préserve tous les attributs de fichier et préserve également les liens symboliques.

Le . à la fin du chemin source se trouve une syntaxe spécifique de cp permettant de copier tous les fichiers et dossiers, y compris les fichiers cachés.

Une alternative est rsync

rsync -r source/ destination
shail
la source
2

Je pense que la meilleure façon consiste à utiliser la gksu nautiluscommande et vous pouvez copier ce que vous voulez avec une interface graphique commune, comme d'habitude.

Af Vtr
la source
1
Cela suppose que vous utilisez une interface graphique et non la CLI.
Phill Healey