#1 Le 02/09/2014, à 11:19
- Elève linuxien
[ Résolu ] Commande CP dans plusieurs dossiers
Gooooood Mooooorning Ubuntu people,
J'essaie de copier un dossier et son contenu dans plusieurs dossiers mais j'y arrive po...
Explication : j'ai un dossier "type" que je veux retrouver dans tous les sous-dossiers existants (plusieurs centaines) d'un dossier et je vous lais le faire avec la commande CP.
je veux que "DossierTest" se retrouve dans tous les sous-dossiers de "DossierDestination", alors j'ai fait :
cp -r DossierTest /DossierDestination/*
Quelqu'un peut il me dire si je suis sur la bonne piste ou si il faut utiliser une autre commande ?
Merci d'avance:.
Dernière modification par Elève linuxien (Le 02/09/2014, à 12:49)
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#2 Le 02/09/2014, à 11:55
- αjet
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Je pense que c'est pas tout a fait ca. La commade cp -r va coppier recursivement tous les dossiers de DossierTest dans /DossierDestination/. Note: je ne sais pas si le caractere * est valide dans cette situation et s'il influence les resultats.
Si j'ai bien compris ce que tu souhaites faire c'est copier DossierTest dans chacun des sous-dossiers de /DossierDestination. Si c'est le cas, en me basant sur ce script: http://stackoverflow.com/a/2108296, je ferais:
for dir in /DossierDestination/*/
do
dest=${dir%*/}
cp DossierTest $dest
done
A tester, je sais pas si la synthaxe est 100% correcte. L'argement -r est peut etre necessaire si ton dossier DossierTest contient des sous dossiers.
αjet: ça se prononce alfajet, bordel ! | GMT+1 | Viens poueter avec moi, bordel ! | Mes photos | Shaarli | Fluidbuntu-fr
Hors ligne
#3 Le 02/09/2014, à 12:03
- bruno
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Autre solution :
cd /DossierDestination
find . -mindepth 1 -maxdepth 1 -type d -exec cp -r /chemin/du/dossierTest {} \;
Hors ligne
#4 Le 02/09/2014, à 12:18
- αjet
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Autre solution :
{} \;
Merci, pourrais tu me dire a quoi correspondent les parentheses {} et pourquoi il est necessaire d'echaper un point-virgule?
αjet: ça se prononce alfajet, bordel ! | GMT+1 | Viens poueter avec moi, bordel ! | Mes photos | Shaarli | Fluidbuntu-fr
Hors ligne
#5 Le 02/09/2014, à 12:20
- αjet
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Je me reponds pour {}: c'est le dossier en cours, mais je ne sais toujours pas pourquoi la commande se termine par \;
αjet: ça se prononce alfajet, bordel ! | GMT+1 | Viens poueter avec moi, bordel ! | Mes photos | Shaarli | Fluidbuntu-fr
Hors ligne
#6 Le 02/09/2014, à 12:39
- bruno
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Quand on ne connaît pas bien une commande, il faut lire sa page de man : man find
-exec commande ;
Exécuter la commande ; vrai si le code de retour 0 est renvoyé. Tous les paramètres qui suivent find
sont considérés comme des paramètres pour la ligne de commande, jusqu'à la rencontre d'un caractère
« ; ». La chaîne « {} » est remplacée par le nom du fichier en cours de traitement, ceci dans toutes
ses occurrences sur la ligne de commande, et pas seulement aux endroits où elle est isolée, comme
c'est le cas avec d'autres versions de find. Ces deux chaînes peuvent avoir besoin d'être protégées du
développement de la ligne de commande par le shell, en utilisant le caractère d'échappement (« \ ») ou
une protection par des guillemets. Consultez la section EXEMPLES pour des exemples d'utilisation de
l'option -exec. La commande indiquée est exécutée à chaque fois qu'un fichier correspond. La commande
est exécutée depuis le répertoire de départ. Il existe d'inévitables problèmes de sécurité associés à
l'usage de l'option -exec, c'est pourquoi vous devriez utiliser l'option -execdir à la place.
Hors ligne
#7 Le 02/09/2014, à 12:47
- Elève linuxien
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Wahou... Désolé alex63 si je n'utilise pas ton script, mais je viens de tester la commande de bruno et ça marche à merveille !!!
Là, je vous avoue que je suis bluffé par la rapidité des réponses et leurs efficacité.
Merci à vous !
"Les ordinateurs sont inutiles : ils ne donnent que les réponses."
Pablo Picasso
Hors ligne
#8 Le 02/09/2014, à 12:49
- αjet
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Pas de pb, la reponse de bruno est plus elegante, elle tient en une ligne.
αjet: ça se prononce alfajet, bordel ! | GMT+1 | Viens poueter avec moi, bordel ! | Mes photos | Shaarli | Fluidbuntu-fr
Hors ligne
#9 Le 02/09/2014, à 15:30
- nesthib
Re : [ Résolu ] Commande CP dans plusieurs dossiers
@αjet : et surtout la tienne risque de faire n'importe quoi, tu n'échappes pas la variable $dest, si elle contient des espaces ça ne fera pas le comportement attendu
@Elève linuxien : attention de poster dans les bonnes catégories, tu es HS dans « Trucs, astuces et scripts utiles », je déplace…
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#10 Le 02/09/2014, à 16:40
- αjet
Re : [ Résolu ] Commande CP dans plusieurs dossiers
Merci pour la precision nesthib!
αjet: ça se prononce alfajet, bordel ! | GMT+1 | Viens poueter avec moi, bordel ! | Mes photos | Shaarli | Fluidbuntu-fr
Hors ligne