0
Merci

Quelques mots de remerciements seront grandement appréciés.

Suppression impossible : liste d'arguments trop longue



Suppression impossible : liste d'arguments trop longue


Finalité


Je souhaite supprimer des fichiers (par exemple tous les fichiers d'extension .toto) dans un répertoire mais la commande "rm *.toto" me renvoie :
bash: /bin/rm: Argument list too long
ou
bash: /bin/rm: Liste d'arguments trop longue

Causes


Ceci est dû à une limitation de la commande rm, qui ne permet pas de gérer un grand nombre d'arguments (le joker '*' est développé par le shell en une série d'arguments).

Solutions


Commande xargs


La solution consiste à envoyer successivement chaque argument à rm à l'aide de la commande xargs, selon une des façons suivantes :
ls *.toto | xargs rm
find . -type f -name \*.toto | xargs rm

Commande find


Une seconde solution consiste à utiliser la commande find et le paramètre -exec :
find . -name "*.toto" -exec rm {} \;

Boucle for (bash)


Une autre alternative consiste à exécuter une boucle en script shell :
for i in `seq 0-9`a b c d e f g h i j k l m n o p q r s t u v w x y z ; do rm $i*.toto ; done

Programme Perl


encore une solution avec perl
perl -e 'for(</home/lami20j/*.toto>){unlink}'
0
Merci

Quelques mots de remerciements seront grandement appréciés.

Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche
et directeur délégué au développement numérique du groupe Figaro.

A voir également

Publié par . Dernière mise à jour le par christelle.b.

Ce document intitulé «  Suppression impossible : liste d'arguments trop longue  » issu de CommentCaMarche (https://www.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

0 Commentaire