5

我有一个创建文件的脚本,有时它们最终会在开头有两个破折号。有什么办法可以删除它们吗?mv也不行。

这是我得到的错误:

$ 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
4

3 回答 3

19

通常的技巧是

rm ./--1355509766.jpg

更新:这就是man rm必须要说的:

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

       rm -- -foo

       rm ./-foo
于 2012-12-17T16:11:12.907 回答
9

用于--将选项与参数分开。

$ rm -- --1355509766.jpg

这也适用于其他命令。例如:

$ touch -- -v         # create a file called -v
$ grep foo -- -v      # grep for "foo" in file called -v
于 2012-12-17T16:11:47.953 回答
6

尝试使用路径的文件名:

$ rm ./--file.name

例子:

$ echo dgag > --test.txt
$ ls
--test.txt
$ rm ./--test.txt
$ ls
于 2012-12-17T16:14:35.463 回答