E sobre:
dd if=/dev/shm/test bs=1G >>/data/sdb/test
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.
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
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.