将文件 1 复制到文件 2,除了 1 命令中的最后一个字节

将文件 1 复制到文件 2,除了 1 命令中的最后一个字节

我需要找出如何将文件 1 复制到文件 2(最后一个字节除外)。我一直在寻找并使用 dd 命令,但 skip 选项仅允许在输入文件的开头跳过。

谢谢

答案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正如其他答案所述,这是一个更简单的解决方案。

相关内容