0

我在 cron 上运行以下命令:

sudo find "$VOLUME1" "$VOLUME2" "$VOLUME3" "$VOLUME4" -type f -exec ls -lT {} + > $FILE

这个命令需要几个小时才能完成,因为它运行了大约百万个文件左右。

当我执行命令时,它显示了 14(!!) 个不同的运行top实例。ls这是脚本中的错误,还是导致运行这么多 ls 命令的原因?

4

1 回答 1

2

因为命令行长度有限,find不能启动单个ls实例超过一百万个参数。相反,它将产生多个ls进程,每个进程都有数千个参数。

在我的机器上,最大命令行长度似乎是 2097152,也许这也可能是 1000000/14 个文件名的大小?

$ getconf ARG_MAX
2097152
于 2013-02-03T23:54:07.423 回答