16MiB(16777216バイト)に達するまで埋めたいファイルがあります。現在16515072バイトです。違いは262144バイトです。
どのようにパディングしますか?
これはうまくいかないようです:
cp smallfile.img largerfile.img
dd if=/dev/zero of=largerfile.img bs=1 count=262144
ベストアンサー1
seek
物理パディングに答える代わりに、ファイルの新しい端に単一の文字を作成して、ファイルのパディングスペースの大部分を空にする(「穴」)ことができます。
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