【发布时间】:2014-09-17 02:55:48
【问题描述】:
我使用以下 bash 脚本删除早于 $days 的文件。
查找 /home/xxx/conf_* -maxdepth 0 -mindepth 0 -type d -ctime +5 -exec rm -rf {} \;但是,如果文件超过 32000+,我会得到
/usr/bin/find:参数列表太长如何将列表缩减到仅 20000 个?
【问题讨论】:
-
-exec \;为每个文件运行一次命令。这就是添加-exec \+的原因。那不可能是问题。 (另外错误是关于find。) -
这是您正在运行的确切命令吗?
$root的值是多少?$root中是否有 32000+ 条路径? -
@Etan Reisner:请参阅更新的问题以了解确切的命令。是的,有超过 32000 个目录与模式匹配
-
不要那样做。让 find 进行过滤。
find /home/xxx -name 'conf_*' ...。如果您的发现有它,还可以考虑使用-exec \+。对于这么多条目,我想它可能会更有效率。 -
@EtanReisner 你应该用
-maxdepth 1将其作为答案发布。