Мне нужно выяснить, как я могу скопировать файл1 в файл2, кроме последнего байта. Я осмотрелся и пришел по команде dd, но опция пропуска позволяет пропустить только в начале входного файла.
Благодаря
Используя 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
Получено из ответа, опубликованного на «Как мне отрубить только последний байт файла в 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
, как указано в другом ответе, является более простым решением.