10个ls命令在单个cron任务上运行?

时间:2013-02-03 23:39:33

标签: linux bash shell unix ls

我在cron上运行以下命令:

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

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

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

1 个答案:

答案 0 :(得分:2)

由于命令行的长度有限,find无法启动超过一百万个参数的单个ls实例。它将生成多个ls进程,每个进程都有数千个参数。

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

$ getconf ARG_MAX
2097152