創建一系列越來越大的文件

創建一系列越來越大的文件

我需要測試 sftp 主機的檔案大小上傳限制。我想製作一系列越來越大的文件,嘗試將它們全部上傳並看看哪裡失敗了。

我正在這樣做for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ; ,但這花了太長時間,而且我得到的文件從 10K 開始,到 11K、12K 等。

如何製作一系列文件不會有如此細粒度的大小差異?我認為限制在 0 到 1 MB 之間。

答案1

dd(1)

bs=位元組

/.../

BLOCKS 和 BYTES 後面可以接以下乘法字尾:c =1、w =2、b =512、kB =1000、K =1024、MB =1000*1000、M =1024*1024

或者,如果您有最新版本的 bash,建構{}也採用一個步驟參數:

for i in {10000..100000..1000}; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done

答案2

出於學術目的,這將透過附加到同一文件來以 1024 位元組為增量為命令提供 1k 個輸入檔。

while ((++n<=1024)); do
    printf '\0%.s' {1..1024} >&3
    xxd -g 1 /dev/stdin; echo # sftp command here
done <<<'' 3>/dev/stdin

但是……反覆試驗?我會找到更好的方法。

相關內容