如何删除Linux中的目录?

每个新的 Linux 用户都会遇到一个问题——如何使用命令行删除 Linux 中的目录? 这个问题之后是诸如非空目录怎么样的问题,或者可以重新获得目录吗?

在 Linux 中删除目录的不同方法

本文将通过示例详细回答任何此类问题。

1.使用rmdir命令删除空目录

顾名思义, rmdir 用于删除 Linux 中的目录,仅当它们为空时。 为了实现这一点,我们运行:

rmdir <DIR_NAME> 
使用“rmdir”删除目录

这仅在我们出现在要删除的目录的父目录中时才有效。 否则,必须添加目录的相对路径。 在上图中,“remove_folder”存在于主目录中,终端的当前工作目录也是如此。

如果我们尝试使用删除非空目录,终端会抛出错误 rmdir.

2.删除嵌套的空目录

为了删除彼此内部的多个空目录,我们可以用一个命令将它们全部删除,而不是一个一个地删除它们。 这个任务是通过 '-p' 选项与 rmdir 命令。

rmdir -p <DIR_NAME>/<DIR_NAME> 
删除嵌套目录

在上面的代码片段中,我们删除了所有空文件夹,从最里面 (remove_folder_2) 到最外面 (remove_folder)。 这仅在它们中的每一个都为空(没有文件)时发生。

笔记: 知道使用 rmdir 命令删除的目录将被永久删除非常重要。

3. 使用 rm 命令删除目录

rm 命令用于删除 Linux 中的文件和目录。 因此它可以很容易地用于删除非空目录。 为了删除一个空目录 rm,我们需要添加 '-d' 选择它。

rm -d <DIR_NAME> 
删除目录 Rm使用“rm”删除目录

4.使用rm命令删除非空目录

删除非空目录 '-r' 必须使用选项。

rm -r <DIR_NAME> 
删除目录非空删除非空目录

'-r' 选项代表递归删除指定目录中的文件和目录。 在上面的代码片段中,ls 命令用于显示要删除的目录的内容。

笔记: 如果我们希望使用 rm 命令删除多个目录,那么我们可以将它们添加到命令中,以空格分隔,例如: 'rm -r <DIR1_NAME> <DIR2_NAME> <DIR3_NAME>'.

5.强制删除目录

可能会出现某些文件需要删除权限的情况,因此会显示确认删除文件的提示。 它可以很容易地绕过使用 '-f' 选项。

rm -rf <DIR_NAME> 
删除目录强制强制删除目录

步骤说明如下:

  1. 使用 mkdir 命令创建目录。
  2. 使用 touch 命令在目录中创建一个空文件。
  3. 使用 chmod 命令从空文件中删除写权限。
  4. 使用检查文件的权限 ls 命令。
  5. 尝试使用标准删除程序删除目录,但会显示提示。
  6. 使用强制删除目录 '-f' 选项。

笔记: 如同 rmdir, 删除的目录和文件 rm 被永久删除。

6. 交互式删除目录

有时我们不确定目录的确切内容,因此我们可以在删除目录的任何项目之前得到提示。 这可以通过使用来实现 '-i' 选项与 rm 命令。

rm -ri <DIR_NAME> 
删除目录交互使用“-i”选项删除目录

在上图中,我们首先创建一个包含三个文件的文件夹。 然后我们对新创建的目录进行交互式删除。 从图中可以清楚地看出,该命令在每个删除步骤期间不断要求确认。 紧迫 'y' 在问题执行语句之后,同时按下 'n' 拒绝移除。

如果有大量文件和目录,则使用 '-I' 选项将提示数量减少到仅重大事件。

rm -rI <DIR_NAME> 
删除目录交互 I使用“-I”选项删除目录

7. 使用表达式删除多个文件夹

使用通配符, '*''?', 这 rm 命令可以匹配目录并一一删除。 这 '*' 符号匹配任意数量的字符,而 '?' 符号只匹配一个字符。

删除目录通配符使用“?”删除目录

上面的命令 'rm -r folder?' 匹配所有三个目录并删除它们。

删除目录通配符 1使用“*”删除目录

上面的命令 'rm -ri folder*' 匹配所有以“文件夹”开头的目录。

结论

如果有许多嵌套目录,使用图形用户界面删除目录可能会很乏味。 这 rmrmdir 命令是每个 Linux 用户的必需品。 如有任何疑问或反馈,请随时在下面发表评论。