I am using rm
within a BASH script to delete many files. Sometimes the files are not present, so it reports many errors. I do not need this message. I have searched the man page for a command to make rm
quiet, but the only option I found is -f
, which from the description, "ignore nonexistent files, never prompt", seems to be the right choice, but the name does not seem to fit, so I am concerned it might have unintended consequences.
-f
option the correct way to silence rm
? Why isn't it called -q
?The main use of -f
is to force the removal of files that would
not be removed using rm
by itself (as a special case, it "removes"
non-existent files, thus suppressing the error message).
You can also just redirect the error message using
$ rm file.txt 2> /dev/null
(or your operating system's equivalent). You can check the value of $?
immediately after calling rm
to see if a file was actually removed or not.