不小心在子目录下做了一个目录“~”

Wen*_*ang 3 rm

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

Joh*_*024 5

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

rm -r '~'
Run Code Online (Sandbox Code Playgroud)

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

rm -r ./~
Run Code Online (Sandbox Code Playgroud)

删除空目录的更安全方法

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

rmdir '~'
Run Code Online (Sandbox Code Playgroud)

或者,

rmdir ./~
Run Code Online (Sandbox Code Playgroud)

文档

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

  • 使用 `rmdir` 而不是 `rm -r` 会更安全。由于目录刚刚创建,它应该是空的。 (3认同)