创建具有特定文件大小的文件目录

创建具有特定文件大小的文件目录

我想创建 100 个文件,每个文件大小为 10Mb。有没有一个简单的 unix 命令可以创建一个包含这 100 个文件的目录?

答案1

for x in {1..100}; do dd if=/dev/zero of=file$x bs=10485760 count=1; done

if=FILE (read from FILE instead of stdin)
of=FILE (write to FILE instead of stdout)
bs=BYTES (force ibs=BYTES and obs=BYTES)
ibs=BYTES (read BYTES bytes at a time)
obs=BYTES (write BYTES bytes at a time)
count=1 (copy only 1 input block)

答案2

为了补充Ochi的回答,这是一种创建 100 个 10 MB 文件的方法,无需使用 1 GB 的磁盘空间并以闪电般的速度运行:

size=$((10*1024*1024))
nb_files=100
for n in $(seq -f "%03.0f" 1 $nb_files); do
  dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
done

(看稀疏文件更多细节。)

或者另一种方法(但在这里,如果你编辑其中一个文件,那么你就编辑了所有文件):

size=$((10*1024*1024))
n=$(seq -f "%03.0f" 1 1)
dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
nb_files=100
for m in $(seq -f "%03.0f" 2 $nb_files); do
  ln file$n file$m
done

(看硬链接更多细节。)

相关内容