所以我需要在 Linux 驱动器上创建 5,000,000,000 个文件 - 空文件。实现这一目标最快/最有效的方法是什么?
我目前正在尝试的是:
/xfs/*/中的目录;做 seq 1 1000000 | xargs -n1 -I% bash -c 'touch '$dir/file%' ;完成;
这是“工作”,尽管非常缓慢。 (在 5,000 个目录中创建 1,000,000 个文件)。
有没有更好的方法来实现这一点? (没有遇到 Argument list too long 问题)
TIA
最佳答案
touch
是您必须启动 5,000,000,000 次的外部程序。您还运行了 5,000 次 seq
。不要运行它们中的任何一个。
for dir in /xfs/*/; do
for ((i=1; i <= 1000000; i++)); do
: > "$dir/file$i"
done
done
这个循环是一个单独的 shell 命令,不会产生额外的进程; :
命令的输出重定向由当前 shell 中的单个系统调用处理。
关于bash - 在 bash 的 5,000 个目录中创建 5,000,000,000 个空文件的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63889740/