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