1コマンドで最後のバイトを除いてファイル1をファイル2にコピーする

1コマンドで最後のバイトを除いてファイル1をファイル2にコピーする

最後のバイトを除いて、ファイル 1 をファイル 2 にコピーする方法を見つける必要があります。いろいろ調べて dd コマンドにたどり着きましたが、スキップ オプションでは入力ファイルの先頭でのみスキップできます。

ありがとう

答え1

使用方法head -c:

   -c, --bytes=[-]NUM
          print  the  first  NUM bytes of each file; with the leading '-',
          print all but the last NUM bytes of each file

それで

head -c -1 file1 > file2

答え2

投稿された回答から派生Quora の「Bash でファイルの最後のバイトだけを切り取るにはどうすればいいですか?」:

dd if=file1 of=file2 bs=1 count=$(( $( find file1 -printf '%s' ) - 1 ))

または...

dd if=file1 of=file2 bs=1 count=$(( $( stat -c%s file1 ) - 1 ))

ただし、head -c他の回答に述べられているように、より簡単な解決策があります。

関連情報