conv=notrunc
を使用せずにファイルを切り捨てない、「dd」の代替案を知っている人はいますか。スペースに限りがあるため、busybox/toyboxを介したconv=notrunc
の追加はサポートされていません。
たとえば、私は同等のものが欲しいです
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
しかし、それはdd
がconv=notrunc
をサポートしていない場合に機能します。
標準の<>
sh
リダイレクト演算子を使用して、ファイルを読み取り+書き込みモードで開きます切り捨てなし。
cat < file.in 1<> file.out
file.in
の先頭にfile.out
の内容をコピーします。
入力ファイルまたは出力ファイルを検索する必要があり、dd
が引き続きこれらのディレクティブをサポートしていると仮定した場合:
dd bs=4 count=3 skip=2 seek=3 < file.in 1<> file.out
dd
がまったくない場合は、head -c
を試すことができます。ただし、終了時にファイル内の適切な場所にポインタを残すようにバージョンが処理していると仮定します(IIRCの古いバージョンのbusyboxはやっていません)。
たとえば、上記と同等のものは次のようになります。
{
head -c 8 > /dev/null # seek input fd to offset 8
head -c 12 <&1 > /dev/null # seek output fd to offset 12
head -c 12 # copy 12 bytes
} < file.in 1<> file.out