Search code examples
linuxbashshellrm

rm cannot delete files starting with "--"


I have a script that creates files, and sometimes they end up having two dashes at the beginning. Is there any way to delete them? mv doesn't work either.

Here is the error I am getting:

$ ls
 --1355509766.jpg

$ rm --1355509766.jpg 
rm: illegal option -- -
usage: rm [-f | -i] [-dPRrvW] file ...
   unlink file

$ rm "--1355509766.jpg"
rm: illegal option -- -
usage: rm [-f | -i] [-dPRrvW] file ...
   unlink file

Solution

  • The usual trick is

    rm ./--1355509766.jpg
    

    Update: here's what man rm has to say about this:

    To  remove a file whose name starts with a '-', for example '-foo', use
    one of these commands:
    
           rm -- -foo
    
           rm ./-foo