Não. Você deve fazer referência ao arquivo inteiro ou copiar a parte do arquivo em que está interessado.
É possível criar um arquivo que seja apenas uma subseqüência de bytes de outro arquivo, como um link simbólico, mas fazendo referência apenas a parte do arquivo?
Não. Você deve fazer referência ao arquivo inteiro ou copiar a parte do arquivo em que está interessado.
Sim, é (um pouco) possível pelo menos no Linux com algumas limitações.
O método é criar um dispositivo de loop de leitura-gravação que mapeia para um subconjunto do arquivo.
por exemplo:
#!/bin/bash
for ((i=0;i<10000;i++)); do
printf "%7d\n" $i
done >/var/tmp/file
losetup -v -f -o 512 --sizelimit 512 /var/tmp/file
losetup -a
head -2 /var/tmp/file
echo ...
tail -2 /var/tmp/file
echo ===
head -2 /dev/loop0
echo ...
tail -2 /dev/loop0
printf "I was here" > /dev/loop0
grep here /var/tmp/file
losetup -d /dev/loop0
saída:
loop device: /dev/loop0
/dev/loop0: [0808]:136392 (/var/tmp/file), offset 512, size 512
0
1
...
9998
9999
===
64
65
...
126
127
I was here 65
Acredito que tanto o deslocamento quanto o tamanho devem ser múltiplos de um tamanho de bloco (512 bytes).
Você provavelmente precisa ser root para criar e acessar o dispositivo de loop.
Se você precisa de um symlink, você pode criar um que aponte para o dispositivo de loop.
Poderia ser possível (criar um link simbólico normal apontando para uma parte de um arquivo) em um sistema de arquivos que implementa o o "arquivo como diretório" ideia , que apareceu - além de outros autores - em os planos para reiserfs , mas a implementação do reiserfs não foi lida pelos problemas que a implementação causou.
Tags filesystems symlink