如何删除文件夹?

Car*_*arl 95 command-line delete rm

我是新用户,我正在尝试删除特定文件夹。我正在使用sudo rm /path/,但它不起作用。要使用的正确命令是什么?

这是我试图删除的文件目录,但我收到一条消息,指出它是空的。

pho*_*bos 111

确保文件夹真的是空的(隐藏的文件/文件夹可能在那里)。再次查看文件内容

sudo ls -lha /path/
Run Code Online (Sandbox Code Playgroud)

如果您绝对确定它不包含您想要的任何内容(包括子目录),请删除它

sudo rm -r -f /path/
Run Code Online (Sandbox Code Playgroud)
  • -r用于递归,所以它会删除文件夹和子文件夹,即使它是非空的
  • -f用于强制(这可能是不必要的)。

  • @EliranMalka `-f` 标志对于 `rm` 删除直接包含在指定文件夹中的项目来说 * 不是 * 必需的,我认为这就是你所说的“寻址文件夹内容”的意思。相反,`-f` 代表 *force*,即使要删除的文件没有写权限,`rm` 也不会提示确认(`rm: remove-write-protected regular file 'foo'?`),并且导致 `rm` 不会在尝试删除已经不存在的文件时发出警告。最好只在真正需要时才使用 `-f` 标志。没有`-f`的`rm -r`绝对*确实*“处理文件夹内容”。 (2认同)

小智 23

需要注意的一件事是文件夹应该是空的,然后运行以下命令

rmdir directory_name
Run Code Online (Sandbox Code Playgroud)

另一件要注意的事情是,您键入的命令不应以斜杠 (/) 开头,除非文件夹位于根目录下。

最后一个选项,你在使用这个选项时应该非常小心,是强制删除有问题的目录,包括其中的任何其他文件/目录。

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

干杯。


小智 12

对于初学者,我不建议养成使用rm -Rf或的习惯rm -r -f,这迟早会咬到你的脸。更安全的是创建一个系统范围的别名。开放端子:Ctrl+ Alt+ T,然后键入:

alias rm='rm -i'
Run Code Online (Sandbox Code Playgroud)

因此,您会在意外删除所有假期照片之前收到提示。我想添加的第二个建议是使用rmdir,它会抱怨非空目录,这正是您作为新手想要的。

但就问题的意义而言,答案已在此处给出,用于-f擦除文件夹。


小智 5

如果您确定该目录存在,则:

(sudo) rm -rfv /path/
Run Code Online (Sandbox Code Playgroud)

删除整个目录到您的文件夹和文件