以下を使用せずにファイルを切り捨てない「dd」に代わるものを知っている人はいますかconv=notrunc
?conv=notrunc
スペースが限られているため、ビジボックス/トイボックスによる追加はサポートされていません。
たとえば、私は次のようなものが欲しい。
dd bs=4 count=3 skip=2 seek=3 if=file.in of=file.out conv=notrunc
ただし、これはdd
サポートされていない場所で機能しますconv=notrunc
。
答え1
標準<>
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