GNU/Linux >> Linux の 問題 >  >> Linux

ファイルを切り捨てない「dd」の代わりに使用しますか?

conv=notruncを使用せずにファイルを切り捨てない、「dd」の代替案を知っている人はいますか? 。 conv=notruncを追加する スペースに限りがあるため、busybox/toyboxではサポートされていません。

たとえば、

に相当するものが欲しいです
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

Linux
  1. ファイル B に表示される行を別のファイル A から削除するには?

  2. どのスレッドがシグナルを処理しますか?

  3. 名前がハイフンで始まるファイルの名前を変更できません

  1. Bashスクリプトがエイリアスを認識しないのはなぜですか?

  2. バッシュ‘?

  3. /proc 内のどのファイルが、起動プロセス中にカーネルによって読み込まれますか?

  1. MvはFsでアトミックですか?

  2. Xdg-openコマンドは、ファイルを開くために使用するアプリケーションをどのように認識しますか?

  3. コマンドラインからファイルの内容をクリアする方法は?