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
?I had same issue for cshell. The only solution I had was to create a dummy file that matched pattern before "rm" in my script.
-f is the correct flag, but for the test operator, not rm
[ -f "$THEFILE" ] && rm "$THEFILE"
this ensures that the file exists and is a regular file (not a directory, device node etc...)
Yes, -f
is the most suitable option for this.
\rm -f file
will never report not found.
As far as rm -f
doing "anything else", it does force (-f
is shorthand for --force
) silent removal in situations where rm
would otherwise ask you for confirmation. For example, when trying to remove a file not writable by you from a directory that is writable by you.
Source: Stackoverflow.com