命令的输出从哪个时间戳开始

命令的输出从哪个时间戳开始

我有一个程序正在将一些图像下载到文件夹中。我想计算当前文件夹中图像的数量。我使用了类似的命令ls -1 download_folder | wc -l

但是这个命令需要很多时间来运行(因为我已经下载了很多图像)。当此命令运行时,我的下载器会继续下载图像。

最后,我的命令返回计数。我想知道这个计数是从什么时间戳开始的。是从我开始运行命令的那一刻开始还是它给出了当前的最新计数?

编辑:我尝试为自己验证,但找不到任何方法。谢谢。

答案1

ls命令正在读取整个目录,并对它进行排序,然后将其传递给wc,无论如何它并不关心顺序。它将运行很多如果你告诉ls不要排序,速度会更快,如下所示:

ls -U | wc -l

这将减少添加新文件的时间窗口,并且更加准确。然而,添加和列出之间仍然存在无法克服的竞争条件。有些文件系统对名称进行哈希处理,有些文件系统会附加到线性列表,因此ls在运行时可能会或可能不会看到任何添加。

相关内容