I have several hundred PDFs under a directory in UNIX. The names of the PDFs are really long (approx. 60 chars).
When I try to delete all PDFs together using the following command:
rm -f *.pdf
/bin/rm: cannot execute [Argument list too long]
The reason this occurs is because bash actually expands the asterisk to every matching file, producing a very long command line.
find . -name "*.pdf" -print0 | xargs -0 rm
Warning: this is a recursive search and will find (and delete) files in subdirectories as well. Tack on
-f to the rm command only if you sure you don't want confirmation.
If you're on Linux, you can do the following to make the command non-recursive:
find . -maxdepth 1 -name "*.pdf" -print0 | xargs -0 rm