Résoudre le problème de l'erreur de liste d'arguments trop longue lors de l'exécution de commandes shell

Si une erreur de liste d'arguments trop longue se produit lors de l'exécution d'une commande shell, la raison en est qu'il y a trop de fichiers cibles à traiter, par exemple, plus de 20 000 fichiers.
La solution consiste à traiter les fichiers cibles par lots ou même un par un.

1. commande grep

Exécution en ligne de commande :

grep "Java" * -l

S'il revient :

zsh: argument list too long: grep

Commande changée en :

ls | xargs -n 100 grep "Java" -l

Explication : Le paramètre -n indique le nombre d'éléments de données exécutés dans chaque lot.

2. commande cp

Exécution en ligne de commande :

cp -r *.zip ../result/

S'il revient :

zsh: argument list too long: cp

Commande changée en :

find . -name "*.zip" -exec cp {} ../result/ \;

3. commande rm

Exécution en ligne de commande :

rm -f *.zip

S'il revient :

zsh: argument list too long: rm

Remplacez la commande par l'une des commandes suivantes :

ls *.zip | xargs rm -f
find . -name "*.zip" -exec rm -f {} \;

Je suppose que tu aimes

Origine blog.csdn.net/chenzhengfeng/article/details/131395173
conseillé
Classement