Commande unix pour copier un dossier [Résolu/Fermé]

jakol - 9 mars 2004 à 08:25 - Dernière réponse :  FF
- 14 juin 2017 à 18:18
salut,
quelle est la commande unix pour copier un dossier contenant plusieurs fichiers dans un shell

merci d'avance de me répondre
A+
Afficher la suite 

18 réponses

johndoe 2645 Messages postés jeudi 25 septembre 2003Date d'inscriptionContributeurStatut 25 mars 2006 Dernière intervention - 9 mars 2004 à 12:17
+304
Utile
4
salut,
Pour copier un repertoire :
note : [space] n'est pas à taper, cela signifie qu'il faut laisser un espace ! :-)

etre sur l'arbre contenant le repertoire
taper :
#cp [SPACE] -R [SPACE] repertoire [SPACE] /lemplacement
Si on veut changer de nom :
#cp [SPACE] -R [SPACE] repertoire[SPACE] /lemplacement/nouveaunom
Pour ne copier que le contenu :
#cp repertoire/* [SPACE] /lemplacement

enjoy !


_
L'éternité, c'est long, surtout vers la fin !
Cette réponse vous a-t-elle aidé ?  
mercci johndoe
jean-michel aulas - 3 mai 2013 à 11:45
merci :)
Petite coquille, il faut ajouter le -R pour "récursif", c'est à dire copier le répertoire dans son intégralité :
#cp -R repertoire/* [SPACE] /lemplacement
teebo 33570 Messages postés jeudi 14 octobre 2004Date d'inscriptionModérateurStatut 24 février 2011 Dernière intervention - 9 mars 2004 à 11:56
+126
Utile
2
RTFM!
Ecoute je te file le nom de la commande, je te donne ce qu'il faut faire pour avoir a utiliser, as tu seulement lu le manuel, non je suis maintenant sur que cp est la bonne commande...et que man cp te donneras exactement ce que tu fois faire!

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
En fait, si tu n'as pas envie de l'aider, il suffit que tu ne répondes pas, plutôt que de faire un post à rallonge pour lui dire de se débrouiller.
Je vous signal Hô grand bouffi d'orgueil sectaire newbiephobe que 1/ la documentation linux est tellement mal fichue qu'il serait préférable d'abréger sa pitoyable existence, et que 2/ je suis tombé sur votre commentaire dont la réflexion atteint avec une facilité déconcertante -je dois bien l'admettre- le niveau d'un enfant de quatres ans et deux mois en faisant une recherche sur google.Merci donc d'voir pollué le net, en plus de n'avoir aidé en rien à la résolution de ce problème. Voila un peu de lecture pour vous: http://www.siteduzero.com/forum-83-556096-p1-plaidoyer-10-bonnes-raisons-de-bannir-google-est-ton-ami.html
teebo 33570 Messages postés jeudi 14 octobre 2004Date d'inscriptionModérateurStatut 24 février 2011 Dernière intervention - 9 mars 2004 à 08:45
+108
Utile
Salut...
La commande est cp, pour les infos sur les options a utiliser, man cp (enfin il me semble bien, ca fait un moment que j'ai pas ete sous unix, mais sous linux c'est ca en tout cas...dis moi si tu trouves pas...)

.  .  Bon!Si on m'empeche de travailler
\_/  Je ne me debattrai pas!
+15
Utile
2
Plus complet que cp, et pour les grosses arborescences ou le contenu d'un CD de données, parce que des droits pourraient ne pas être respectés, on peut utiliser tar :
tar -cz /<source> | (cd /<destination> ; tar -xvz)

Au final /<destination>/<source> sera identique à /<source>

Avantages :
- la redirection par le pipe | ne créera pas de fichier temporaire
- la compression par z limitera la consommation de bande passante
- on peut aussi utiliser cette méthode pour un envoi pas ssh ou scp :

ssh <host-source> 'tar -cz /<source>' | tar -xvz
En lançant cette commande depuis le dossier destination sur la machine de destination, on va chercher le dossier /<source> de la machine <host-source> et le transférer intact sans fichier temporaire, en limitant la consommation de bande passante.
kerkael 3 Messages postés samedi 3 novembre 2007Date d'inscription 23 avril 2012 Dernière intervention - 7 janv. 2011 à 11:51
En fait la syntaxe tar -cz est valable pour linux, pas pour solaris.

Sous solaris :
tar cvf - <source> | (cd <destination> ; tar xf -)

tar étant fait à l'origine pour envoyer sur bande, on le force à envoyer vers un fichier par le switch f.
Le fichier étant en fait ici "-", soit la sortie standard.
C'est cette sortie standard qui est renvoyée par le pipe "|" vers l'extraction du second tar : tar xf -

le switch c est pour la compression
le switch v est pour le mode verbose, pour afficher le déroulement du transfert

<source> sera créé dans <destination>

Attention si <source> est un chemin absolu, commençant par /, l'effet n'est pas garanti.
Il vaut mieux se déplacer juste en amont de <source> pour le prendre en relatif.
Merci Kerkael ! La commande indiquée ssh <host-source> 'tar -cz /<source>' | tar -xvz est exactement celle que je cherchais : je viens de transférer plusieurs dizaines de Giga d'un serveur avant une réinstall ! :-)
+12
Utile
utiliser tout simplement cp -r nomrep destination
I'm elle 2 Messages postés samedi 5 février 2011Date d'inscription 5 février 2011 Dernière intervention - 5 févr. 2011 à 19:38
+8
Utile
cp -R (en recursif)
++
baobab33 14 Messages postés lundi 31 mars 2008Date d'inscription 17 avril 2015 Dernière intervention - 2 oct. 2011 à 14:51
+6
Utile
1
cp -r repertoire-origine/* repertoire-destination/

et voilà... (PS : penser ensuite à rétablir les droits, si vous copiez les données d'un user en étant root, par exemple il faudra faire :

chown nom-du-user:users -R repertoire-destination


(avec users = nom du groupe dont le user fait partie)
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 2 oct. 2011 à 15:56
ou utiliser l'option --preserve de cp
+3
Utile
merci mais cp marche seulement avec la copie de fichiers mais pas avec le copie de dossier entier