Dd
如何將文件填充到所需的大小?
我有一個要填充的文件,直到它達到 16 MiB(16777216 字節)。目前它是 16515072 字節。差異是 262144 字節。
我該如何墊它?
這似乎不起作用:
cp smallfile.img largerfile.img dd if=/dev/zero of=largerfile.img bs=1 count=262144
seek
除了獲得物理填充的答案之外,您還可以通過ing 到文件的新結束位置並寫入單個字元,將文件中的大部分填充空間留空(“洞”) :dd if=/dev/zero of=largerfile.txt bs=1 count=1 seek=16777215
(它的優點是性能更高,特別是使用
bs=1
,並且不會佔用大量額外的磁碟空間)。
if=/dev/null
通過使用和最終所需的文件大小,即使不添加任何字元,該方法似乎也有效:dd if=/dev/null of=largerfile.txt bs=1 count=1 seek=16777216
使用較大塊大小的物理填充解決方案的一種高性能變體是:
padding=262144 bs=32768 nblocks=$((padding/bs)) rest=$((padding%bs)) { dd if=/dev/zero bs=$bs count=$nblocks dd if=/dev/zero bs=$rest count=1 } 2>/dev/null >>largerfile.txt