[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: applatir un arbre



Pierre Allken-Bernard a écrit :
Le 28/03/2010 à 14:18:32, Jeremie COURREGES-ANGLAS a écrit :
@Klaus : je considère ton script dangereux car il ne gère pas les noms de
répertoires comprenant des espaces / autres caractères exotiques. Tu peux
parfaitement l'utiliser chez toi si tu es sûr des noms de tes dossiers.


@Pierre : ça tient en une ligne, à modifier selon tes besoins.
Regarde l'option --backup=MODE de mv, si il se trouve que tu as
des fichiers ayant le même nom.

find . -mindepth 2 -type f \( -iname '*.jpg' -o -iname '*.png' -o -iname \
'*.jpeg' \) -exec sh -c 'for i; do echo mv "$i" "${i##*/}"; done' \
territorial_pissings {} +

Je me doutais qu'en une ligne c'est possible (même si je ne sais pas vraiment faire), je me demandais simplement s'il existait une petite
commande standard pour le faire, apparemment non.
Merci en tout cas.


Dans ton cas précis, je pense qu'un simple :
find rep_racine -type f -exec mv "{}" "rep_racine" \;
devrait suffire. A supposer que tu n'aies pas de conflit sur les noms de fichier, sinon, l'option -b de mv t'aidera :
find rep_racine -type f -exec mv -b "{}" "rep_racine" \;


Fanfan


Reply to: