【问题标题】:rm cannot delete files starting with "--" [duplicate]rm 无法删除以“--”开头的文件 [重复]
【发布时间】:2012-12-04 18:12:29
【问题描述】:

我有一个创建文件的脚本,有时它们会在开头有两个破折号。有什么办法可以删除它们吗? 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

【问题讨论】:

    标签: linux bash shell rm


    【解决方案1】:

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

    $ rm -- --1355509766.jpg
    

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

    $ touch -- -v         # create a file called -v
    $ grep foo -- -v      # grep for "foo" in file called -v
    

    【讨论】:

      【解决方案2】:

      尝试文件名和路径:

      $ rm ./--file.name
      

      例子:

      $ echo dgag > --test.txt
      $ ls
      --test.txt
      $ rm ./--test.txt
      $ ls
      

      【讨论】:

      • 是的,这很好......我有一个以井号#file_name#开头的文件名,这就是我删除它的方式rm ./#file_name#
      【解决方案3】:

      通常的技巧是

      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
      

      【讨论】:

        猜你喜欢
        • 2017-09-27
        • 2013-07-12
        • 2014-03-29
        • 2016-07-12
        • 1970-01-01
        • 2022-07-21
        • 2020-10-31
        • 1970-01-01
        • 2016-03-17
        相关资源
        最近更新 更多