2
我正在尝试在单个文件夹中的〜200,000个文件上执行某些操作。在数千个文件中迭代速度更快
当我这样做:
for i in *; do /bin/echo -n "."; done
一个点每隔几秒钟打印。具有一百个文件的文件夹上的相同操作速度非常快。
这是为什么?如何加速包含数千个文件的文件夹的过程?
我正在尝试在单个文件夹中的〜200,000个文件上执行某些操作。在数千个文件中迭代速度更快
当我这样做:
for i in *; do /bin/echo -n "."; done
一个点每隔几秒钟打印。具有一百个文件的文件夹上的相同操作速度非常快。
这是为什么?如何加速包含数千个文件的文件夹的过程?
试试这个与GNU发现:
find . -maxdepth 1 -type f -printf "."
好主意,它工作。为了清晰起见,我的“打印点”是一种简化,但实际上我使用了xargs,并对这些文件进行了更高级的操作。 – dust
创建一个线程过程中做,在时间 –
瓶颈可能是你的文件系统,而不是外壳。如果您可以使用'btrfs'创建一个临时虚拟硬盘并将文件移动到那里(或者只是符号链接?),您可能会获得更好的性能。当然,首先删除任何明显的复杂问题(Windows安装?NFS?FUSE?) – tripleee
这是一个功能相当强大的NFS,但我认为你是正确的文件系统会降低速度。感谢您的评论。 – dust