我有一个目录,其名称类似于10.2 (14C92)
我想使用 rmdir -rf 删除的目录(以包含其内容)。我确实知道如何传递空格,\
但我得到了结果:
-bash: syntax error near unexpected token ('
所以在我看来,我必须以某种方式从命令中转义括号。我如何正确地做到这一点?
答案1
你可以用\
它来逃脱任何单个字符,(
并)
像您已经对空格所做的那样包含在内。虽然它有效,但如果您有很多字符/空格需要转义,它可能会很麻烦。
更快的替代方法是使用单引号('
) 逃离整个字符串,即类似:
rm -rf '10.2 (14C92)'
请牢记'
逃生一切,因此,如果您需要(例如,引号内的变量扩展),请小心使用它。也就是说,使用双引号适用于转义空格和括号,还:
rm -rf "10.2 (14C92)"
另外,根据您的问题,您尝试使用rmdir
.rmdir
仅适用于空目录并且它没有-r
和/或-f
标志:
NAME rmdir - 删除空目录
概要 rmdir [选项]...目录...
描述 删除目录,如果它们是空的。
你会想要使用rm -rf
.
如果10.2 (14C92)
确实为空,一个简单的
rmdir '10.2 (14C92)'
会做。
转义是由其bash
本身完成的,因此它适用于每个命令。换句话说,它bash
决定了什么传递给命令,命令根据自己的解析规则对参数进行操作后 bash
已经解析了它们。
答案2
你已经走在正确的道路上了。您也可以使用转义字符\
作为括号。
rm -r 10.2\ \(14C92\)
您还可以使用引用:
rm -r '10.2 (14C92)'
答案3
rm -rf 10.2\ \(14C92\)/
- 递归删除此文件夹10.2\ \(14C92\)/
及其所有内容。