Symlink gibi başka bir dosyadan sadece bayt alt dizisi olan, ancak dosyanın yalnızca bir bölümüne referans veren bir dosya oluşturmak mümkün müdür?
Symlink gibi başka bir dosyadan sadece bayt alt dizisi olan, ancak dosyanın yalnızca bir bölümüne referans veren bir dosya oluşturmak mümkün müdür?
Yanıtlar:
Hayır. Tüm dosyaya başvurmanız veya dosyanın ilgilendiğiniz kısmını kopyalamanız gerekir.
Evet, en azından bazı sınırlamalarla Linux'ta (bir şekilde) mümkündür.
Yöntem, dosyanın bir alt kümesiyle eşleşen bir okuma-yazma döngüsü aygıtı oluşturmaktır.
Örneğin:
#!/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
çıktı:
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
Hem ofset hem de boyutun bir blok boyutunun (512 bayt) birden fazla olması gerektiğine inanıyorum.
Döngü aygıtını oluşturmak ve erişmek için muhtemelen kök olmanız gerekir.
Bir symlink'e ihtiyacınız varsa, döngü cihazını gösteren bir tane oluşturabilirsiniz.
Bu hangi uygular bir dosya sisteminde (bir dosyanın bir kısmına işaret normal sembolik oluşturmak için) mümkün olabilir "dosya dizini olarak" Fikir diğer yazarların yanısıra - - göründü içinde reiserfs için planlar fakat ReiserFS'deki en uygulaması uygulamanın neden olduğu sorunlardan hoşlanmadı .