This morning I was looking for a way to delete the dispensable aux, bbl, blg, log, out and toc files that a pdflatex compilation generates. I wanted it to go through directories so that it would eventually find old files and delete them too. I also wanted to do it from the command-line interface and to integrate it within a bash script.
As I didn’t find this bash snippet as such, i.e. adapted to the LaTeX-generated files, I post it here:
find . -regex ".*\(aux\|bbl\|blg\|log\|nav\|out\|snm\|toc\)$" -exec rm -i {} \;
This works on Unix, probably on Mac OS and perhaps on Windows if you have Cygwin installed.
Remarks
- Find goes here through all the directories starting from where you are (.), it could also go through absolutely all directories (/) or search your Desktop for instance (something like \$Home/Desktop/).
- The regular expression captures files ending with the (expandable)
given series of letters, but also files with no extension which end
with it (like test-aux).
If you want it to stick to file extensions you may prefer this
variant:
find . \( -name "*.aux" -or -name "*.bbl" -or -name "*.blg" ... \)
- The second part really removes the files that match the expression. If you are not sure keep the -i option. It will prompt you each time a file could be deleted (answer with “y” or “n”). If you think you know what you are doing, you can keep track of the deletions by using the “-v” (verbose) option. If you want it to be quiet, use at your own risk the -f (force) option.