rm cannot delete files starting with — [duplicate]

2019-03-29 12:54发布

This question already has an answer here:

I have a script that creates files and sometimes they end up having 2 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

3条回答
女痞
2楼-- · 2019-03-29 13:09

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
查看更多
虎瘦雄心在
3楼-- · 2019-03-29 13:17

Use -- to separate options from parameters.

$ rm -- --1355509766.jpg

This works with other commands too. For example:

$ touch -- -v         # create a file called -v
$ grep foo -- -v      # grep for "foo" in file called -v
查看更多
贼婆χ
4楼-- · 2019-03-29 13:22

Try file name with path:

$ rm ./--file.name

Example:

$ echo dgag > --test.txt
$ ls
--test.txt
$ rm ./--test.txt
$ ls
查看更多
登录 后发表回答