Копировать файл1 в файл2, за исключением последнего байта в команде 1

Копировать файл1 в файл2, за исключением последнего байта в команде 1

Мне нужно выяснить, как я могу скопировать file1 в file2, за исключением последнего байта. Я искал и наткнулся на команду 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

Получено из ответа, опубликованного на«Как мне отрезать только последний байт файла в Bash?» на Quora:

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как указано в другом ответе, это более простое решение.

Связанный контент