Dosyanın bir parçasıyla bağlantı mı oluşturuyorsunuz?


14

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?


4
Belki de yapmaya çalıştığınız şeyin amacını açıklarsanız, bir çözüm önerebiliriz.
JRT

Yanıtlar:



12

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.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.