linux args列出太长的错误

时间:2016-10-09 13:28:03

标签: linux bash

我试图运行此命令,但得到arg list太长错误:

find /dir1/dir2/dir3/dir4/dir5 -name *.cdb -type f -mmin +30 -delete

错误是:

/usr/bin/find: Arg list too long.

可能find命令返回太多文件。 关于如何克服这个问题的任何建议?

由于

2 个答案:

答案 0 :(得分:1)

首先,您应该转义星号以防止shell扩展它:

find /dir1/dir2/dir3/dir4/dir5 -name \*.cdb -type f -mmin +30 -delete

find /dir1/dir2/dir3/dir4/dir5 -name '*.cdb' -type f -mmin +30 -delete

答案 1 :(得分:0)

Bash globbing正在扩展您的*.cdb参数,并且您向find命令发送了太多参数。

尝试在该参数中添加引号以避免shell扩展并将globbing任务传递给find命令:

find /dir1/dir2/dir3/dir4/dir5 -name '*.cdb' -type f -mmin +30 -delete

如果您仍需要增加最大参数限制,则可以使用ulimit -s

ulimit -s 65536