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

对于在Unix系统上工作的任何人来说,删除目录都是一个常规过程。但是有时我们还需要先找到目录,然后再决定删除它。删除文件的一个障碍是进行递归删除,因为默认情况下,Unix系统不允许目录不为空的目录的删除。因此,在本文中,我们将看到如何递归查找和删除目录。

使用查找和执行

下面的命令首先使用find命令搜索所需的目录,然后执行“ rm”命令以使用递归选项和force选项以递归方式删除目录。该命令下面解释了该命令中使用的各种参数。

$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 "{}"