Dd

如何將文件填充到所需的大小?

  • September 4, 2021

我有一個要填充的文件,直到它達到 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

引用自:https://unix.stackexchange.com/questions/196715