删除海量小文件

工作中遇到一个场景需要删除目录下几十万个 jpg 文件

第一个想到的方案:

rm -r *.jpg

如果使用这种方案,shell 会拼接文件名,最终执行的命令会像是 rm -r pic1.jpg pic2.jpg pic3.jpg ... 。由于拼接的名字过长,可能会导致报错。

替代方案:

find /nasdata -type f -name "*.jpg" -exec rm -v {} \;

这种方案好像耗时也会比较长

可以使用 find 自带的参数 -delete

find /nasdata -type f -name "*.jpg" -delete