我在cron上运行以下命令:
sudo find "$VOLUME1" "$VOLUME2" "$VOLUME3" "$VOLUME4" -type f -exec ls -lT {} + > $FILE
这个命令需要几个小时才能完成,因为它运行了大约一百万个左右的文件。
当我执行top
命令时,它显示运行ls
的14个(!!)差异实例。这是脚本中的错误,还是导致如此多的ls命令运行的原因?
答案 0 :(得分:2)
由于命令行的长度有限,find
无法启动超过一百万个参数的单个ls
实例。它将生成多个ls
进程,每个进程都有数千个参数。
我的机器上的最大命令行长度似乎是2097152,也许也可能是1000000/14文件名的大小?
$ getconf ARG_MAX
2097152