J'ai un grand nombre de petits fichiers, f, disposés dans une structure de répertoires comme ceci:
/A/B/C/f
Il existe 11 répertoires au niveau A, chacun avec environ 100 répertoires au niveau B, chacun avec environ 30 répertoires au niveau C, chacun avec un fichier f.
Comment déplacer tous les fichiers d'un niveau? Par exemple, étant donné cet ensemble de fichiers ...
/ A / B / C / f1
/ A / B / C / f2
/ A / B / C / f3
/ A / B / C / f4
Je veux que le répertoire /A/B/
contienne 4 fichiers, f1 à f4. La suppression des répertoires C n'est pas nécessaire.
J'espère que c'est un problème résolu, impliquant éventuellement find
, xargs
et whatnot
. Des idées?
À votre santé,
James
Ma première hypothèse est
tant que vous ne spécifiez pas,
-depth
ça devrait aller. Je ne l'ai pas essayé alors testez-le avant de vous y engager.la source
mv
commandes sont exécutées dans le répertoire en cours,..
ne faites donc pas ce que vous espérez. Voir ma réponse pour des solutions. @ jl6: le shell n'a rien à voir..
, c'est géré par le noyau.Si vous ne souhaitez que déplacer les fichiers qui sont dans des répertoires de feuilles (vous ne voulez pas passer
/A/B/file
à/A
siB
contient des sous - répertoires) , alors voici quelques façons de le faire:Les deux exigent cela
Celui-ci fonctionne:
Ce sera plus rapide, mais cela n'aime pas les répertoires sources vides:
la source