Um arquivo compartilha parte de outro arquivo

2

Eu tenho um arquivo - A que é criado primeiro, então o arquivo - B será criado depende do arquivo A. Então eu vou

  1. cat file A e arquivo B para criar o arquivo - C;
  2. Vou escrever no arquivo C's B part.

Vou repetir o passo 1 e o passo 2.

----------------------------
 A   |    B (write here)    | notice: A, B, C are all binary file
----------------------------

Agora gostaria de saber se B pode compartilhar a parte B do arquivo C, portanto, não preciso escrever para C quando eu a recriamos (ou seja, ignorarei a etapa 2). O resultado pode gostar do seguinte:

----------------------------
 A   |    link to B        | 
----------------------------

Q: Então, existe algum comando do Linux para fazer isso?

    
por Tony 23.10.2015 / 15:20

1 resposta

0

Você pode usar dd para gravar em um deslocamento igual à dimensão "A" em bytes.

Supondo "C" = 5 KB ("A" = 1 KB e "B" = 4KB);

Para zerar "B":

dd if=/dev/zero of=C iflag=fullblock oflag=seek_bytes seek=1000 bs=1000 count=4 

Para substituir "B" por outro arquivo "new_B" (se "new_B" for maior que "B", "C" crescerá de tamanho igual à diferença de "new_B" e "B"):

dd if=new_B of=C oflag=seek_bytes seek=1000

Se os dados a serem gravados forem a saída de outro comando, outra opção será canalizar os dados diretamente para dd :

[...] | dd of=C oflag=seek_bytes seek=1000
    
por kos 23.10.2015 / 15:55