如何删除名为“;”(分号)的目录?

h0c*_*355 1 bash rm

在共享计算机上以某种方式;创建了一个目录(其中包含很多内容)。

我只能通过 shell 访问这台机器,因此无法使用任何 GUI 文件资源管理器来删除该文件。

rm -rf ;
Run Code Online (Sandbox Code Playgroud)

导致奇怪的行为,因为分号可能充当命令分隔符并且不会被评估为目录名称。

rm -rf ./;rm:拒绝删除“.” 或“..”目录:跳过“./”

rm:拒绝删除“.” 或“..”目录:跳过“./”

此外,我不想删除其他目录,因此我不愿意使用通配符之类的东西。

如何安全地递归删除该分号目录?

Kus*_*nda 5

引用它的名字。引用该名称将阻止 shell 将其解释为命令终止符。

rm -rf ';'
Run Code Online (Sandbox Code Playgroud)

对于名称中包含 shell 通常特殊处理的其他字符的文件的处理也是如此,例如文件名通配字符、、、、、、、&换行符、制表符<、空格等,以及可能属于shell 的语法。>(){}

  • 有关更多信息,请访问 [如何在 Unix shell 中将特殊字符用作普通字符?](//unix.stackexchange.com/q/296141) (2认同)