Menu

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

- - Dernière réponse : teem12
Messages postés
1
Date d'inscription
samedi 23 mars 2019
Statut
Membre
Dernière intervention
23 mars 2019
- 23 mars 2019 à 10:09
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 

9 réponses

Meilleure réponse
approuvée par Jean-François Pillou le 27 janv. 2019
Messages postés
2645
Date d'inscription
jeudi 25 septembre 2003
Statut
Contributeur
Dernière intervention
25 mars 2006
419
310
Merci
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 !

Dire « Merci » 310

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39145 internautes nous ont dit merci ce mois-ci

-
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
Merci, clair et concis
teem12
Messages postés
1
Date d'inscription
samedi 23 mars 2019
Statut
Membre
Dernière intervention
23 mars 2019
-
Merci ;

j'aime bien aussi la maxime sur l'éternité ! MDR!
Je vais essayer de trouver de qui c'est sur internet...
Messages postés
33568
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
3318
125
Merci
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
Messages postés
33568
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
3318
108
Merci
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
Merci
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
Messages postés
3
Date d'inscription
samedi 3 novembre 2007
Statut
Membre
Dernière intervention
23 avril 2012
1 -
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
Merci
utiliser tout simplement cp -r nomrep destination
Messages postés
2
Date d'inscription
samedi 5 février 2011
Statut
Membre
Dernière intervention
5 février 2011
8
8
Merci
cp -R (en recursif)
++
Messages postés
14
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
17 avril 2015
6
6
Merci
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)
Utilisateur anonyme -
ou utiliser l'option --preserve de cp
3
Merci
merci mais cp marche seulement avec la copie de fichiers mais pas avec le copie de dossier entier