Bonjour,
@jipété: l'erreur est surtout situé sur la déclaration de variables (espace en trop autour du signe "=")
Sinon, personnellement, je serais passé par find + awk:
find . -type f -printf "%p\n" | awk -vfnb=3 -vdfn=5 'BEGIN{MAXF=-1;MULTI=-1;cnt=-1};{STR=STR" \\\""$0"\\\""};++MAXFR % fnb == 0 && ++MULTI % dfn == 0 {cnt++;system("echo mkdir -p destination/"cnt)};MAXFR % fnb {next}{system( "echo mv "STR" destination/"cnt"/");STR=""}'
Bon dans cet exemple, je ne fais que des echo des commande "mv" et "mkdir".
L'idée ici, est de déplacer n fichier à la fois (-vfnb=3) et de refaire cette action n fois (-vdfn=5) avant de créer et utiliser un nouveau répertoire (il faut donc que le nb de fichiers par répertoire soit fnb*dfn).
Ici, ce n'est qu'un exemple, il faut réagencer la ligne pour qu'elle prenne en compte des variables pour la source et la destination. Il faudrait aussi rajouter le bloc END pour traiter les derniers fichiers résiduels.
Sinon, on doit pouvoir passer à mv les 1500 fichiers à déplacer en une seule fois, il faut juste, me semble-t-il, utiliser une syntaxe multiligne...
Mais je ne peux pas le confirmer
Partager