J'essaie de déplacer environ 700 000 fichiers .jpg d'un répertoire à un autre sur mon serveur Ubuntu. J'ai essayé ce qui suit:
xargs mv * -t /var/www/html/
et
echo (*.jpg|*.png|*.bmp) | xargs mv -t /var/www/html/
et
echo (*.jpg) | xargs mv -t /var/www/html/
et
find . -name "*.jpg" -print0 | xargs mv * ../
et ils me donnent tous la même erreur:/usr/bin/xargs: liste d'arguments trop longue
que devrais-je faire? Sil te plait aide moi. Merci :)
Si vous utilisez find
, je vous recommanderais d'utiliser l'attribut -exec
. Donc, votre résultat devrait être find . -name "*.jpg" -exec mv {} /home/new/location \;
.
Cependant, je vous recommande de vérifier ce que la commande find
vous renvoie, en remplaçant la partie exec
par: -exec ls -lrt {} \;
Essayer:
find /path/to/old-directory -type f | xargs -i mv "{}" /path/to/new-directory
Vous auriez pu essayer:
for f in *.jpg do;
mv -tv $f /var/www/html/
done
for f in *.png do;
mv -tv $f /var/www/html/
done
for f in *.bmp do;
mv -tv $f /var/www/html/
done
de plus, vous devriez lire attentivement xargs (1) ; Je soupçonne fortement que
find . -name "*.jpg" -print0 | xargs -n 1000 -I '{}' mv '{}' ../
devrait travailler pour vous
Enfin, apprenez-en plus sur rename (1) . C'est probablement suffisant pour le travail.