GNU/Linux >> Tutoriels Linux >  >> Linux

Impossible de supprimer les fichiers du répertoire avec l'erreur "Liste d'arguments trop longue"

Le problème

Lorsque vous essayez de répertorier ou d'interagir avec un grand nombre de fichiers à partir de la ligne de commande, l'erreur suivante s'affiche :

$ ls -l *.xml | wc -l
bash: /bin/ls: Argument list too long
0
$ rm *.xml
bash: /bin/rm: Argument list too long

ou lorsque vous essayez de supprimer un grand nombre de fichiers à l'aide de la commande find, cela échoue avec le message d'erreur ci-dessous :

$ find /u01/oracle/apps/fs1/EBSapps/appl/xdo/12.0.0/temp/*.xml -mtime +120 -exec rm -v {} \;
bash: /usr/bin/find: Argument list too long

La solution

Il existe une limite importante mais finie à la ligne de commande imposée par le noyau et les erreurs affichées ci-dessus indiquent que la limite a été atteinte.

Pour contourner ce problème, xargs peut être utilisé, qui accepte une liste de noms de fichiers à partir de son entrée standard et exécute une commande dessus. Vous pouvez utiliser "find" en combinaison avec "xargs" comme ci-dessous :

# find . -type f -name '*.xml' | xargs rm

REMARQUE :La commande ci-dessus supprimera tous les fichiers avec une extension .xml dans le répertoire courant sans aucune confirmation. Je vous recommande de commencer par sauvegarder les fichiers nécessaires avant de les exécuter. Il est toujours bon de vérifier sur une machine de test et de vérifier avant de procéder sur la machine de production.


Linux
  1. Commande Linux ls - Lister les fichiers

  2. rechercher et supprimer des fichiers avec de l'espace à l'aide de la commande find sous Linux

  3. bash :/bin/tar :liste d'arguments trop longue lors de la compression de nombreux fichiers avec tar

  4. Erreur OS intermittente :[Errno 7] Liste d'arguments trop longue avec une commande courte (~ 125 caractères)

  5. Existe-t-il une commande UNIX pour répertorier tous les fichiers récemment supprimés d'un système

Comment supprimer un répertoire sous Linux

Comment supprimer des répertoires et des fichiers à l'aide de Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment lister les fichiers de manière récursive sous Linux

Principes de base de la ligne de commande Linux - Travailler avec des fichiers et des répertoires

Comment puis-je supprimer tous les fichiers d'un répertoire lorsqu'il signale une liste d'arguments trop longue