Preciso descobrir como poderia copiar um arquivo1 para um arquivo2, exceto o último byte. Estive olhando em volta e encontrei o comando dd, mas a opção skip só permite pular no início do arquivo de entrada.
Obrigado
Responder1
Usando 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
Então
head -c -1 file1 > file2
Responder2
Derivado de uma resposta postada em"Como faço para cortar apenas o último byte de um arquivo no Bash?" no Quora:
dd if=file1 of=file2 bs=1 count=$(( $( find file1 -printf '%s' ) - 1 ))
Ou...
dd if=file1 of=file2 bs=1 count=$(( $( stat -c%s file1 ) - 1 ))
No entanto, head -c
conforme afirmado na outra resposta, é a solução mais fácil.