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