Join
the community
Sign-up
Ask a question »

Unable to delete file: Argument list too long

May 2013

Linux users encounter a typical error message of 'argument list too long'when they try to delete a file. This issue arises due to the problem in command rm which is one of the most commonly used shell commands in Linux. This error occurs due to the reason that the system commands show limitations when a large number of arguments are fed into a single command. There are four solutions that can effectively deal with the operating system's problem. Through Xargs, Command Find, Perl Program and running loop in shell script, the error 'Argument list too long' is solved.

Unable to delete file: Argument list too long




Issue


When trying to delete a file, you receive the following error message :

bash: /bin/rm: Argument list too long

This is due to a limitation of the command rm which cannot manage a large number of arguments (it is developed by the shell in a series of arguments).

Solutions

Xargs


Send each rm argument using the command xargs as below:
ls *.toto | xargs rm          
find . -type f -name *.toto | xargs rm

Command find


The second solution consists of using the command find together with exec:
find . -name "*.toto" -exec rm {} ;

loop for (bash)


Another solution consists of performing a loop in shell script:

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          

Perl program


Another solution using Perl :
perl -e 'for(</home/lami20j/*.toto>){unlink}'

See also

Knowledge communities.

Published by deri58 - Latest update by Virginia Parsons
This document entitled « Unable to delete file: Argument list too long » from Kioskea (en.kioskea.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the license, as this note appears clearly.
Receive our newsletter

health.kioskea.net

Retrieve the result of command in a variable
Linux - Displaying a file without the commentary lines