Skip to content Skip to main navigation Skip to footer

Linux系统下find命令递归删除查找目录的方法

本文将会讲述如何使用linux系统下的find查找命令来查找目录或文件,并将查找到的所有文件和目录递归删除掉。

Linux find 命令递归删除非空目录

通常情况下我们会想到find命令里的删除操作是使用-delete选项,但是使用该选项只能删除空目录的文件,不能递归删除该目录里的其它文件。如下面的例子:

$ ls dir1
test1
$ find ./ -name "dir1" -type d -delete
find: cannot delete `./dir1': Directory not empty

可以使用下面的Linux find 命令删除非空目录,如:

$ find ./ -name “dir1” -type d -exec rm -rf {} +

或者

$ find ./ -name “dir1” -type d -exec rm -rf  \;

Linux find 命令结合xargs命令实现删除非空目录

删除当前目录下的所有空目录

$ find ./ -type d -empty -print0 |xargs -0 -i {} rm -rf  “{}”

删除当前目录下所有以“dir”开头的目录

$ find ./ -type d -name “dir*” -print0 |xargs -0 -I {} rm -rf “{}”