|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Développeur Web Inscription : avril 2011 Messages : 5 ![]() |
Bonjour tout le monde.
Je suis assez novice dans l'écriture de fichier bash. Et j'aurai besoin d'aide pour en faire un. J'ai besoin de déplacer tous les fichiers (xml par exemple) présents dans les sous-dossiers d'un dossier source vers un dossier cible contenant aucun sous-dossier. Exemple d'arborescence : /dossier_source /sous-dossier1 fichier1.xml /sous-dossier2 fichier2.xml /sous-dossierX /dossier_destinationfichierX.xml fichier1.xml fichier2.xml fichier3.xml Pourriez vous m'expliquer le code à créer pour obtenir ce résultat svp. Merci d'avance. Cordialement |
|
|
01
|
|
|
#2 | ||
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 979 ![]() |
Bonjour.
Voici un bout de script (non testé) qui pourrait t'aider : Code :
Cordialement, Idriss |
||
|
10
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Une autre approche : Code :
find /dossier_source -type f -name "*.xml" -exec cp -v {} /dossier_destination \;
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
20
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
avec BASH 4 (si disponible) : Code :
(shopt -s globstar; mv -t /destination /source/**/*.xml) Code :
(shopt -s globstar; printf '%s\n' /source/**/*.xml) ? les parenthèses servent à ne pas modifer les options du shell courant. |
|
|
30
|
|
|
#5 | ||
|
Invité régulier
![]() Développeur Web Inscription : avril 2011 Messages : 5 ![]() |
Re bonjour,
merci pour vos réponses. avec le find j'ai réussi à faire un script que fonctionne comme je le voulais Code :
|
||
|
|
01
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Re-
Ben je ne vois pas l'utilité du "sh", surtout qu'il n'y a aucun traitement de plus d'effectué avec ce processus Tu prends la syntaxe donnée plus haut, tu change le "cp" par "mv" et roulez jeunesse
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
30
|
|
|
#7 |
|
Invité régulier
![]() Développeur Web Inscription : avril 2011 Messages : 5 ![]() |
Bonjour tout le monde
effectivement le code ci-dessous marche très bien Code :
find /dossier_source -type f -name "*.xml" -exec mv -v {} /dossier_destination \; Merci à tous pour votre aide.
|
|
|
10
|
|
|
#8 | |
|
Membre Expert
![]() |
Citation:
|
|
|
|
11
|
|
|
#9 |
|
Futur Membre du Club
![]() Technicien réseau Inscription : avril 2011 Messages : 15 ![]() |
je cherche une explication supplémentaire sur la réponse de N_Bah
(shopt -s globstar; mv -t /destination /source/**/*.xml) Pourquoi le double ** ? |
|
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Technicien réseau Inscription : avril 2011 Messages : 15 ![]() |
c'est lié à l'option globstar
Enable extended directory and subdirectory matching with the special ** pattern. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com