Remove os bytes nulos do final de um arquivo grande

0

Acabei de fazer o backup do cartão microSD do meu Raspberry Pi no meu PC executando uma distribuição do Linux usando este comando:

dd if=/dev/sdx of=file.bin bs=16M

O cartão microSD é apenas 3/4 cheio, então suponho que haja alguns gigs de bytes nulos no final do tremendo arquivo. Tenho certeza de que não preciso disso. Como posso remover eficientemente esses bytes nulos do final para que eu possa restaurá-lo posteriormente com este comando?

cat file.bin /dev/zero | dd of=/dev/sdx bs=16M
    
por iBug 13.01.2018 / 09:37

1 resposta

4

Para criar uma cópia de backup de um disco enquanto economiza espaço, use gzip :

gzip </dev/sda >/path/to/sda.gz

Quando você quiser restaurar o disco do backup, use:

gunzip -c /path/to/sda.gz >/dev/sda

Isso provavelmente economizará muito mais espaço do que simplesmente remover os bytes NUL.

Removendo bytes NUL à direita

Se você realmente quiser remover bytes NUL à direita e tiver o GNU sed, tente:

sed '$ s/\x00*$//' /dev/sda >/path/to/sda.stripped

Isso pode ter um problema se os dados de um disco grande excederem algum limite interno de sed.

    
por 13.01.2018 / 09:55

Tags