[SunHELP] stupid error
William W. Arnold
sunhelp at sunhelp.org
Wed Feb 7 12:42:08 CST 2001
David Bishop writes ---
>How can you delete a file that is named -al? Being stupid, I forgot what I
>was doing and typed 'touch ls -al'. Now, rm and mv both refuse to touch the
>file, whether I quote it, double-quote it, backslash escape it, or stand on
>my head, claiming that -al are illegal arguments. Help!
rm ./-al
Just remember that the arguments are interpreted by the command (rm or mv)
but all the quoting/double-quoting/escaping etc is for the benifit of the shell
and is removed before the command sees it.
FAQ on comp.unix.questions
Subject: How do I remove a file whose name begins with a "-" ?
Date: Thu Mar 18 17:16:55 EST 1993
2.1) How do I remove a file whose name begins with a "-" ?
Figure out some way to name the file so that it doesn't begin
with a dash. The simplest answer is to use
rm ./-filename
(assuming "-filename" is in the current directory, of course.)
This method of avoiding the interpretation of the "-" works with
other commands too.
Many commands, particularly those that have been written to use
the "getopt(3)" argument parsing routine, accept a "--" argument
which means "this is the last option, anything after this is not
an option", so your version of rm might handle "rm -- -filename".
Some versions of rm that don't use getopt() treat a single "-"
in the same way, so you can also try "rm - -filename".
--
-billy- warnold at vipnet.org
More information about the SunHELP
mailing list