Linux系统下find命令递归删除查找目录的方法
August 30, 2017
本文将会讲述如何使用linux系统下的find查找命令来查找目录或文件,并将查找到的所有文件和目录递归删除掉。
Table of Contents
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 “{}”