适合初学者的 Linux rmdir 命令示例

yanding 2023-07-19 223

作为 Linux 用户,我们定期与文件和文件夹进行交互。用户经常执行的一项任务是从文件系统中删除文件夹。但是,删除数据库时我们需要格外小心。因为不小心删除可能会导致数据丢失。


在这篇适合初学者的文章中,我们将了解 rmdir 命令。我们还将考虑一些可以在日常生活中使用的实际例子。


rmdir 命令与其他 Linux 命令具有相同的语法。在高层次上,它分为两个部分——选项和辩论:


$ rmdir [选项] ... <目录1> <目录2> ...

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


Linux 中 rmdir 命令的一般使用

顾名思义,rmdir 命令用于删除目录。但是,需要注意的是,它只能删除空数据库。在本节中,我们将看到 rmdir 命令的主要用法。



首先,创建几个空白文件夹:


$ mkdir dir1 dir2 dir3 dir4

让我们检查是否创建了必要的文件夹:


$ ls -l

现在,让我们卸载dir1文件夹,看看它是否被卸载:


$ rmdir dir1

$ ls -l

同样,我们可以使用 rmdir 命令一次性删除多个空目录。


让我们删除其余的文件夹:


$ rmdir dir2 dir3 dir4

最后,检查所有文件夹是否已被删除:


$ ls -l

这里我们可以看到ls命令没有指定任何目录。



在上一节中,我们使用 ls 命令来确认删除文件夹。然而,仅仅为了验证之前代码的功能而再创建一个代码是没有意义的。


在这种情况下,我们可以使用 select 启用详细模式-v,它为每个处理的目录提供诊断。


让我们创建与之前创建的相同的目录结构:


$ mkdir dir1 dir2 dir3 dir4


现在,让我们删除启用了详细模式的目录:


$ rmdir -v dir1 dir2 dir3 dir4

$ ls -l

从上述披露中,我们可以得出结论,所有文件夹均已被删除。



我们通常在文件系统上创建子目录,这使我们能够以正确的顺序组织数据。让我们看看如何使用空子目录。


正如第一个示例中所讨论的,我们可以使用 rmdir 命令删除多个目录。然而,当小站点数量较多时,情况就会变得棘手。


在这些情况下,我们可以使用-pselect,它会删除库和所有祖先。让我们通过一个例子来理解这一点。


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


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

在本例中,我们使用-poption 和 mkdir 命令创建子目录结构。


让我们同时关闭所有这些网站:


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


rmdir:删除目录,'dir1/dir2/dir3/dir4/dir5'

rmdir:删除目录“dir1/dir2/dir3/dir4”

rmdir:删除目录“dir1/dir2/dir3”

rmdir:删除目录“dir1/dir2”

rmdir:删除目录“dir1”

此时,详细模式会删除所有 dir5 目录及其祖先目录。



我们已经知道 rmdir 只能删除空目录。任何删除非空数据库的尝试都会导致错误。虽然这可以防止数据丢失,但在极少数情况下可能会导致问题。



例如,如果我们尝试从 Jenkins 正在运行的脚本中删除非空文件夹,则作业将报告失败。


为了练习这一点,让我们尝试删除一个非空文件夹:


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

$ rmdir dir1


rmdir:无法删除“dir1”:目录不为空

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


让我们在命令中使用此选项并检查返回值:


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

$回声$?


0

在此示例中,我们可以看到该命令没有报告任何错误,并且返回值为零表示该命令成功执行。但需要注意的是,此选项仅抑制错误,并不会删除非空文件夹。



与其他 Linux 命令一样,我们可以将正则表达式与 rmdir 命令一起使用。我们看看下面两个正则表达式是如何使用的:


?– 它与一个字母完全匹配。

*– 匹配零次或多次出现的先前字符。

首先,创建几个空白文件夹:


$ mkdir dir1 dir2 dir-01 dir-02

现在,让我们使用?正则表达式和字符串 'dir' 来提取 dir1 和 dir2 目录:


$ rmdir -v 目录?


rmdir:删除目录“dir1”

rmdir:删除目录“dir2”

在这里我们可以看到该命令删除了相关文件夹。


接下来,使用*正则表达式删除其他两个文件夹:


$ rmdir -v 目录 -*


rmdir:删除目录“dir-01”

rmdir:删除目录“dir-02”

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



在本节中,我们仅讨论两个正则表达式的使用。但是,我们还可以将其他标准的标准表达式与 rmdir 命令一起使用。


在这篇文章中,我们首先了解一下rmdir命令的基本用法。然后我们讨论了详细模式和删除子目录。接下来我们看看当文件夹不为空时如何处理失败。最后,我们讨论了如何使用正则表达式。

言鼎科技

The End