Subject: Re: "rm *" files "-f" and "-r" - weird behaviour...
To: Ian Zagorskih <ianzag@megasignal.com>
From: Martin Husemann <martin@duskware.de>
List: tech-userlevel
Date: 01/20/2006 13:20:27
On Fri, Jan 20, 2006 at 06:12:36PM +0600, Ian Zagorskih wrote:
> $ echo > -r
> $ echo > -f
> $ rm *
[..]
> IMHO quite weird rm behavior, no? :)
What do you not understand about it? Your shell expands * into all files,
and you get "rm -r -f foo" as a result. Now rm executes this and the result
is as expected.
If you don't want to risk this, do not use * in this context or use -- to stop
option parsing:
$ rm -- *
rm: foo: is a directory
(but it will rm the -r and -f file)
Another common way to express this is to use
rm ./*
which has the same effect, basically (since no options start with ./)
Martin