find删除文件

find删除文件

经典一
1. find ./  -type  f   |  xargs  -n 1000   rm  -f

此条命令删除当前目录下所有文件,即使当前目录高达四百万个文件也没问题(maildrop目录很多文件)

2. find ./*  -type  f   |  xargs  -n 1000   rm  -f

此条命令多了一个星号,意义就完全不一样了
[root@99-tl-api maildrop]# find ./* -type f | xargs -n 1000 rm -f
bash: /bin/find: Argument list too long
表示先遍历当前目录下所有文件,然后再继续后面的操作

1和2 对比,如何理解:
find ./  -type  f   意思是,在当前目录下,匹配所有文件(-type  f );这个匹配应该是根据元数据来进行的,所以效率非常高,并且所有的元数据信息量也没有那么大
或者 
find 是直接 从当前目录的 元数据 里得到当前目录里的文件信息,比如文件数量

而	find ./*  -type  f  意思是,先遍历当前目录下所有文件,再匹配文件类型;遍历四百多万文件是什么概念,find直接报 如上 参数太多