Re: How to delete a special directory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Darío Mariani wrote:

> > > >> I've accidently created two directories: -f and -q
> > > >>
> > > >> Now, i can't remove them with rm -rf -f -q
> > > >> I get an error.
> > > >>
> > > >
> > > > Try giving the full path name to the directory.  Such as,
> > > > rm -rdf ./-f ./-q
> > >
> > > Try this (works with bash on BSD...Linux should be the same)
> > >
> > >  rm -rf \-f \-q
> > >
> > > Make sure you are in bash...the backslashes escape the - and take it as a
> > > literal.
> >
> > That won't work. The dashes are significant to "rm", not the shell.
> > The backslashes will be removed by the shell, and won't affect the
> > arguments which "rm" sees.
> >
> > I have no idea why this would work on BSD; bash is bash, regardless of
> > the underlying OS.
> 
> What about rm -rf "-r" "-f"?

The same issue applies; the shell will simply "eat" the quotes before
passing the strings to "rm", which will interpret them as switches
rather than filenames.

Quotes and backslashes are shell syntax. They will help if the problem
is because the filename means something to the shell (e.g. a file
named "~" or "<" or "$foo"), but not if the filename means something
to the program (e.g. a file named "-f").

For that situation, you need to use "--" (which should work with any
program which uses getopt()), or the "./-f" trick.

-- 
Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-admin" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Newbie]     [Audio]     [Hams]     [Kernel Newbies]     [Util Linux NG]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Device Drivers]     [Samba]     [Video 4 Linux]     [Git]     [Fedora Users]

  Powered by Linux