我有一个目录,其名称类似于10.2 (14C92)
我想使用 rmdir -rf 删除(以包含其内容)。我知道如何传递一个空格,\
但我得到了结果:
-bash: syntax error near unexpected token ('
所以在我看来,我必须以某种方式从命令中转义括号。我如何正确地做到这一点?
您可以使用\
转义任何单个字符,(
并)
像使用空格一样包含在内。虽然它有效,但如果您有很多字符/空格要转义,则可能会很麻烦。
更快的替代方法是使用单引号( '
) 来转义整个 string,例如:
rm -rf '10.2 (14C92)'
Run Code Online (Sandbox Code Playgroud)
请记住,'
转义所有内容,因此如果需要,请小心使用它,例如,引号内的变量扩展。也就是说,使用双引号也适用于转义空格和括号:
rm -rf "10.2 (14C92)"
Run Code Online (Sandbox Code Playgroud)
此外,根据您的问题,您尝试使用rmdir
. rmdir
仅适用于空目录,它没有-r
和/或-f
标志:
NAME rmdir - 删除空目录
概要 rmdir [选项]... 目录...
描述 删除 DIRECTORY(ies),如果它们是空的。
你会想要使用rm -rf
.
如果10.2 (14C92)
确实是空的,一个简单的
rmdir '10.2 (14C92)'
Run Code Online (Sandbox Code Playgroud)
会做。
转义是bash
自己完成的,所以它适用于每个命令。换句话说,这是bash
它决定什么传递给命令,根据自己的分析规则,命令,然后作用于争论之后 bash
解析了它们。