不小心在子目录中创建了目录“~”

不小心在子目录中创建了目录“~”

我不小心在我的主目录的子目录下创建了一个目录“~/”。如何安全地删除此目录而不影响我的主目录。rm -r ~显然行不通...谢谢!

答案1

当放在引号中时,~永远不会扩展。所以:

rm -r '~'

同样,除非波浪号是第一个字符,否则不会执行波浪号扩展。所以,这也将起作用:

rm -r ./~

删除空目录的更安全方法

rm -r将删除目录及其所有内容。如果您只想删除空目录,请使用rmdir(帽子提示:Patrick)。在这种情况下:

rmdir '~'

或者,

rmdir ./~

文档

波形符扩展
如果一个这个词以一个开头 未引用的 波形符( ~),第一个不带引号的斜杠之前的所有字符(或所有字符,如果没有不带引号的斜杠)都被视为波形符前缀。如果波形符前缀中的任何字符均未加引号,则波形符前缀中跟随波形符的字符将被视为可能的登录名。如果此登录名是空字符串,则波浪号将替换为
shell 参数 HOME 的值。如果未设置 HOME,则会替换执行 shell 的用户的主目录。否则,波形符前缀将替换为与指定登录名关联的主目录。 [强调。]

答案2

该命令rm -ir -- relativepath/~将删除它。该-r标志观察目录是否为空,然后才会继续。-i在采取行动之前提示确认。

相关内容