Unable to delete file: Argument list too long

November 2016

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.


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).



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'[ALPHABET] ; do rm $i*.toto ; done          

Perl program

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

Related :

This document entitled « Unable to delete file: Argument list too long » from CCM (ccm.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.