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