linux:argument list too long的解决方案

问题

展示/删除的文件数目过多时,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"

你可能感兴趣的:(操作系统,linux,运维)