如何删除名为:" str \\ escape.rs"

时间:2015-05-21 20:59:07

标签: unix rm

奇怪的是我无法" rm -rf str \\ escape.rs" 即使我只是简单地把" rm -rf * .rs"没有什么变化 该文件就在那里..

此文件来自cm10.2以及cm12。但这很奇怪..任何想法都会受到赞赏!

更新 所以,如果我这样做:

rm 'str\\escape.rs'

它会抛出错误

rm: cannot remove `str\\\\escape.rs': No such file or directory

UPDATE2: 许可是

-rwxrwx--- 0 myu myu 53 May 21 00:17 str\\escape.rs

我尝试过类似" rm"然后按Tab键(因为它是唯一剩下的文件..),它给出了

rm str\\\\escape.rs

等删除包含此文件的目录" rm -rf P_str_escape"。它要么说

rm: cannot remove `str\\\\escape.rs': No such file or directory

rm: cannot remove `P_str_escape': Directory not empty

2 个答案:

答案 0 :(得分:0)

你需要逃避更多斜杠:

rm -rf str\\\\escape.rs

编辑:我刚试过这个,它运行正常:

$ ls
str\\escape.rs
$ rm str\\\\escape.rs
$ ls
$

答案 1 :(得分:0)

至少有两个选择:

  • 用单引号取文件名,以避免bash替换:

    rm 'str\\escape.rs'
    

    证据:

    $ touch 'str\\escape.rs'
    $ ls  'str\\escape.rs'
    str\\escape.rs
    $ rm 'str\\escape.rs'
    $ ls  'str\\escape.rs'
    str\\escape.rs: No such file or directory
    
  • 只是逃避斜杠:

    rm str\\\\escape.rs
    

有关转义如何工作的更多信息: http://www.tldp.org/LDP/abs/html/escapingsection.html