Skip to contentSkip to conversation

usage of '-rm -f ...' in .mk files

Buildroot Cristian Ionescu-Idbohrn 2 participants 2 messages Oct 8, 2007 – Oct 9, 2007

lore
Share & tools
lore
#0 lore raw

Is there a point (I'm missing) with that? The rm manpage on my box states:

-f, --force
ignore nonexistent files, never prompt

Shouldn't every occurence of '-rm -f' be replaced with just 'rm -f'? Even files with permission 000 (owned by me) can be removed with 'rm -f' with the exit status 0. Of course one should not be able to remove files owned by someone else (unless permission is given to so) and an error status should be produced.

Isn't it so that we want to know if an attempt to remove unremovable files occurs, instead of ignoring errors by using '-rm -f'?

Cheers,

Signature · 1 line
Cristian
#1 lore raw
Quoted 2 lines

Isn't it so that we want to know if an attempt to remove unremovable files occurs, instead of ignoring errors by using '-rm -f'?

I would say it depends on the situation. Normally the inability to remove files during a cleanup might not be considered worthy of turining into a show-stopper for the whole make process. In other cases that might well be so, and I guess it should be up to the developer writing the makefile to decide if she wants a possible error printed, but continue with whatever target is being built, or if she regards a failed unlink severe enough to yield an error.

Having said that, I concede that "rm -f" usually does not exit with an error anyway, thus rendering "-rm -f" kind of useless. But on the other hand, double safety never hurts, and explicit coding helps understand what the author intends with a certain line of code. The leading dash is a clear statement saying "whatever happens, go on". Furthermore, there might be improbable cases in which a certain "rm" implementation might yield an error anyway. Given the fact that Busybox sometimes is very terse in error handling, leaving out improbable error conditions in order to save space, I would not say that an error during "rm -f" is absolutely impossible. I have not looked into the source code, though.

Regards
--
Alexander Kriegisch