Como anexar dados em um arquivo por dd?

16

Eu quero acrescentar novos dados em um arquivo armazenado no SSD.

dd if=/dev/shm/test of=/data/sdb/test bs=1G oflag=append

Mas df -h mostra o comando dd sempre sobrescrever o arquivo de teste, em vez disso, anexa novos dados no arquivo de teste. Eu também tentei

dd if=/dev/shm/test of=/data/sdb/test bs=1G conv=notrunc

Também não funciona.

    
por city 09.12.2014 / 06:52

3 respostas

10

E sobre:

 dd if=/dev/shm/test bs=1G >>/data/sdb/test
    
por 09.12.2014 / 06:55
27
dd if=/dev/shm/test of=/data/sdb/test bs=1G oflag=append conv=notrunc 

Isso é o que eu acho que você deveria ter usado.

REF: link

    
por 09.12.2014 / 08:16
0

No kernel do Linux, foi adicionada a opção 4,1 FALLOC_FL_INSERT_RANGE . De fallocate(2) página de manual :

Specifying the FALLOC_FL_INSERT_RANGE flag (available since Linux 4.1) in mode increases the file space by inserting a hole within the file size without overwriting any existing data. The hole will start at offset and continue for len bytes. When inserting the hole inside file, the contents of the file starting at offset will be shifted upward (i.e., to a higher file offset) by len bytes. Inserting a hole inside a file increases the file size by len bytes.

Recentemente, essa opção de suporte foi adicionada a util-linux :

   -i, --insert-range
          Insert a hole of length bytes from offset, shifting existing
          data.

Assim, quando util-linux versão 2.30 for lançado e sua distribuição Linux atualizar para esta versão, poderemos aumentar o tamanho do arquivo rapidamente:

fallocate -i -l 1G -o 128M /path/to/file

em que 128M é o tamanho atual do arquivo.

    
por 29.01.2017 / 19:15

Tags