如何在Linux系统上递归搜索和删除目录?


删除目录是任何在Unix系统上工作的人都经常进行的操作。但有时我们也需要先找到目录,然后决定是否删除它。删除文件的一个障碍是进行递归删除,因为默认情况下,如果目录非空,Unix系统不允许删除目录。因此,在本文中,我们将了解如何查找和递归删除目录。

使用find和exec

下面的命令首先使用find命令搜索所需的目录,然后使用递归选项和强制选项执行‘rm’命令来递归删除目录。命令中使用的各种参数在该命令下方解释。

$find /path/to/search -name " Dir name to be deleted " -type d -exec /bin/rm -rf {} +

这些参数的含义如下。

-type d - restricts the search only to directories
-exec - executes an external command, in this case it is rm –r
{} + - appends the found files to the end of the rm command

使用find和xargs

xargs允许像rm和mkdir这样的命令接受标准输入作为参数。因此,在这种情况下,我们首先使用find命令查找所需的目录,然后通过将其作为参数提供给xargs命令来对该目录进行操作。print0选项允许使用完整的目录路径,该路径将提供给xrags命令。然后,我们以与上面exec命令类似的方式应用rm命令。

$find /path/to/search -name " Dir name to be deleted " -type d -print0 | xargs -0 /bin/rm -rf "{}"

更新于:2020年1月3日

浏览量:304

启动您的职业生涯

完成课程获得认证

开始学习
广告