分享最新优惠信息
购买主机更加划算

Linux rmdir命令详解及使用演示示例

作为Linux用户,可能经常会定期与文件和目录进行交互,例如用户执行的一项常见操作是从文件系统中删除目录。但是,在删除目录时必须格外小心,因为不小心执行删除操作会导致数据丢失。

在本文当中,小编将简单介绍下rmdir命令。此外,还将介绍一些可以在日常基础上使用Linux rmdir命令的实际示例。

rmdir命令的语法类似于其他Linux命令。在高层次上,它分为两部分——选项参数

$ rmdir [OPTIONS] ... <DIRECTORY1> <DIRECTORY2> ...

在这里,方括号([])代表可选参数,而尖括号(<>)代表强制参数。

顾名思义,rmdir命令用于删除目录。但是,需要注意的是,它只能删除空目录,下面简单介绍下rmdir命令的基本用法。

1、在Linux中删除一个空目录

$ mkdir dir1 dir2 dir3 dir4

现在验证是否已创建所需的目录:

$ ls -l

现在,让删除dir1目录并验证它是否已被删除:

$ rmdir dir1
$ ls -l

以类似的方式,还可以使用rmdir命令一次删除多个空目录。下面删除剩余的其它目录:

$ rmdir dir2 dir3 dir4

最后,验证所有目录是否已被删除:

$ ls -l

这时候,可以看到ls命令没有显示任何目录,说明已经全部删除:

Linux rmdir命令用法

2、rmdir详细模式

在上面使用了ls命令来验证目录删除。但是,仅仅为了验证先前命令的操作而再执行一个命令是没有意义的。在这种情况下,可以使用-v选项启用详细模式,该选项为每个处理的目录提供诊断。

现在创建与之前创建的相同的目录结构:

$ mkdir dir1 dir2 dir3 dir4

现在,启用详细模式的目录进行删除:

$ rmdir -v dir1 dir2 dir3 dir4 
$ ls -l

从上面的输出中,可以看出,所有目录都已被删除。

rmdir命令详细模式

3、删除Linux中的空子目录

我们经常会在文件系统上创建子目录,这样能够以适当的方式组织数据。接下来看看如何使用空子目录。

如第一个示例中所述,可以使用rmdir命令删除多个目录。但是,当子目录的数量很大时,情况就会变得棘手。在这种情况下,可以使用-p删除目录及其所有父目录选项。现在通过一个例子来理解这一点。

首先,创建一个子目录结构:

$ mkdir -p dir1/dir2/dir3/dir4/dir5

在这个例子中,使用了mkdir命令-p的选项来创建一个子目录结构。

现在一次性删除所有这些目录:

$ rmdir -p -v dir1/dir2/dir3/dir4/dir5

rmdir: removing directory, 'dir1/dir2/dir3/dir4/dir5'
rmdir: removing directory, 'dir1/dir2/dir3/dir4'
rmdir: removing directory, 'dir1/dir2/dir3'
rmdir: removing directory, 'dir1/dir2'
rmdir: removing directory, 'dir1'

在这里,使用详细模式删除了dir5目录及其所有父目录。

删除Linux中的空子目录

4、处理非空目录失败

众所周知,rmdir只能删除空目录。任何删除非空目录的尝试都将导致错误。尽管这提供了防止数据丢失的保护,但在极少数情况下,它可能会产生问题。

例如,如果尝试从Jenkins正在执行的脚本中删除一个非空目录,那么该处理过程将显示失败:

为了验证这一点,现在尝试删除非空目录:

$ mkdir -p dir1/dir2/dir3/dir4/dir5
$ rmdir dir1

rmdir: failed to remove 'dir1': Directory not empty

对于此类错误情况,我们可以使用--ignore-fail-on-non-empty选项,该选项忽略由于非空目录而发生的所有故障。

接下来将此选项与命令一起使用并检查返回值:

$ rmdir --ignore-fail-on-non-empty dir1
$ echo $?

0

在这个例子中,可以看到命令没有报错,返回值为零表示命令执行成功。但需要注意的是,此选项只会抑制错误并且不会删除非空目录。

rmdir - 目录不为空错误

5、在rmdir命令中使用正则表达式

与其他Linux命令类似,可以在rmdir命令中使用正则表达式。接下来来看看下面两个正则表达式的用法:

  • ?– 它只匹配一个字符。
  • *–它与前面的字符匹配零次或多次。

首先,创建几个空目录:

$ mkdir dir1 dir2 dir-01 dir-02

现在,使用带有字符串‘dir’'?'正则表达式来删除dir1dir2目录:

$ rmdir -v dir?

rmdir: removing directory, 'dir1'
rmdir: removing directory, 'dir2'

在上面,可以看到该命令删除了正确的目录。

接下来,使用'*'正则表达式删除其他两个目录:

$ rmdir -v dir-*

rmdir: removing directory, 'dir-01'
rmdir: removing directory, 'dir-02'

在此示例中,我们可以看到其他两个目录已被删除。

在 rmdir 命令中使用正则表达式

当然,上面只讨论了两个正则表达式的用法。但是,也可以通过rmdir命令使用其他高级正则表达式。

总结

在本文中,简单介绍下rmdir命令的基本用法,同时介绍了详细模式和子目录的删除、当目录不为空时如何处理等相关内容,希望能给对大家有所帮助。对于Linux新手用户而言,可以参考上面的rmdir命令用法。

未经允许不得转载:惠主机 » Linux rmdir命令详解及使用演示示例