回答:
dd if=/dev/shm/test of=/data/sdb/test bs=1G oflag=append conv=notrunc
それはあなたが使用すべきだったと思うものです。
REF:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=373736
count=1
オプションなしでは、使用可能なすべてのスペースが追加されます。
Linuxカーネル4.1 FALLOC_FL_INSERT_RANGE
オプションが追加されました。fallocate(2)
manページから:
モードでFALLOC_FL_INSERT_RANGEフラグ(Linux 4.1以降で使用可能)を指定すると、既存のデータを上書きせずにファイルサイズ内に穴を挿入することでファイルスペースが増加します。穴はオフセットから始まり、lenバイト続きます。ファイル内に穴を挿入すると、offsetから始まるファイルの内容がlenバイトだけ上方に(つまり、より高いファイルオフセットに)シフトされます。ファイル内に穴を挿入すると、ファイルサイズがlenバイト増加します。
そして最近、このオプションのサポートが追加されましたutil-linux
:
-i, --insert-range Insert a hole of length bytes from offset, shifting existing data.
したがって、util-linux
バージョン2.30がリリースされ、Linuxディストリビューションがこのバージョンに更新されると、次のコマンドを実行してフラッシュ内のファイルサイズを増やすことができます。
fallocate -i -l 1G -o 128M /path/to/file
どこ128M
が現在のファイルサイズです。
スパースホールをファイルに追加する簡単な方法があります。
truncate
ddよりもはるかに高速です。10バイトでファイルを拡大するには、次を使用します。truncate -s +10 file.txt