removing a file with hyphens
John Costello
cos at indeterminate.net
Mon Jun 11 22:43:45 BST 2007
On Thu, 7 Jun 2007, Paul Orrock wrote:
> Hi,
>
> So for reasons I won't go into I ended up with a file like this
>
> -rw-r--r-- 1 paulo paulo 0 2007-05-21 14:23 -----Original
>
> which I didn't want, so I tried the following :
[snip]
> Then I tried unlink('-----Original') using perl and it worked fine.
>
> I'm glad that it did but I'm curious as to why ?
>
> My second question is how do non perl people do it ?
I see that others have directed you to 'man rm', which is good to know
about should you ever interview as a sysadmin.
unlink on Solaris works, because it doesn't take any arguments, and
therefore views anything starting with a '-' as a valid filename. rm
expects arguments beginning with '-' to be one of its arguments, or a
problem.
Looks like newer versions of Linux have unlink (RH 7.x series doesn't
appear to have the command, though that could just be the system I looked
at, but FC series does). That version does take arguments of the fashion
of --help and --version, so you would have to use `unlink ./--help` to
remove a file named --help.
unlink in perl appears to use the unlink system call.
More information about the london.pm
mailing list