Delete a file starting with a dash/hypen on Linux on the command linePosted in Linux/Unix/BSD -
So you have a file that starts with a dash/hyphen/- and need to delete it. But when you try to do so, the "rm" command complains that you have passed an "invalid option --". This post looks at the simple solution to deleting a file that starts with a dash/hyphen.
As an example, doing a directory listing gives you something like this:
$ ls -l total 678586 -rw-r--r-- 1 root root 54 Apr 29 15:39 -.log -rw-r--r-- 1 root root 26819 Apr 30 13:17 18.104.22.168.log -rw-r--r-- 1 root root 18114 Apr 30 01:37 22.214.171.124.log -rw-r--r-- 1 root root 18410 Apr 30 01:37 126.96.36.199.log ...
You try to delete the -.log file like this:
and rm complains like this:
rm: invalid option -- . Try `rm ./-.log' to remove the file `-.log'. Try `rm --help' for more information.
The answer is actually supplied in the error message, which is fairly unusual for a Linux/Unix command. Instead of doing rm -.log you simply add ./ to the start and run this instead:
This will also work for other command line utilities you need to run against a file starting with a hypen/dash.