建立每個具有特定檔案大小的檔案目錄

建立每個具有特定檔案大小的檔案目錄

我想建立 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

(看硬連結更多細節。

相關內容