我试图运行此命令,但得到的参数列表太长错误:的Linux的args列表太长错误
find /dir1/dir2/dir3/dir4/dir5 -name *.cdb -type f -mmin +30 -delete
错误是:
/usr/bin/find: Arg list too long.
大概find命令返回太多的文件。 有关如何解决此问题的任何建议?
感谢
我试图运行此命令,但得到的参数列表太长错误:的Linux的args列表太长错误
find /dir1/dir2/dir3/dir4/dir5 -name *.cdb -type f -mmin +30 -delete
错误是:
/usr/bin/find: Arg list too long.
大概find命令返回太多的文件。 有关如何解决此问题的任何建议?
感谢
首先,你应该逃星号,以防止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
猛砸globbing扩大您的*.cdb
说法,你是发送太多参数给find
命令。
尝试添加引号这样的说法,以避免shell扩展和通配符任务传递给find
命令:
find /dir1/dir2/dir3/dir4/dir5 -name '*.cdb' -type f -mmin +30 -delete
如果您还需要增加最大参数限制,您可以使用ulimit -s
:
ulimit -s 65536