问题
展示/删除的文件数目过多时,linux命令会报错,如下:
rm 命令
rm *txt
zsh: argument list too long: rm
ls命令
ls *txt
zsh: argument list too long: ls
原因
(猜测)shell命令在做通配符匹配时,会计算匹配到的文件名个数。一旦超过设定值,则会放弃该命令的执行,同时报错。
解决
我们使用“find”命令和“xargs”命令组合,先找出需要删除的文件,每找到一个匹配的文件,通过pipeline的方式传递给后面的“rm”命令进行操作。
find . -name "*txt" | xargs rm -rf "*txt"