फ़ाइल के भाग के लिए सिमलिंक?


14

क्या ऐसी फाइल बनाना संभव है जो सिम्लिंक की तरह किसी अन्य फ़ाइल से बाइट्स का उप-अनुक्रम हो, लेकिन फ़ाइल के केवल एक हिस्से को संदर्भित कर रही हो?


4
शायद अगर आप इस उद्देश्य की व्याख्या करते हैं कि आप क्या करने की कोशिश कर रहे हैं, तो हम एक समाधान सुझा सकते हैं।
JRT

जवाबों:



12

हां, कम से कम कुछ सीमाओं के साथ लिनक्स पर यह (कुछ हद तक) संभव है।

विधि एक रीड-राइट लूप डिवाइस बनाने के लिए है जो फ़ाइल के सबसेट पर मैप करती है।

उदाहरण के लिए:

#!/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

उत्पादन:

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

मेरा मानना ​​है कि ऑफसेट और आकार दोनों एक ब्लॉक आकार (512 बाइट्स) के कई होने चाहिए।

लूप डिवाइस को बनाने और उस तक पहुंचने के लिए आपको संभवतः रूट होना होगा।

यदि आपको एक सिमलिंक की आवश्यकता है, तो आप एक ऐसा बना सकते हैं जो लूप डिवाइस को इंगित करता है।


2

यह संभव हो सकता है (एक फ़ाइल के एक हिस्से की ओर इशारा करते हुए एक सामान्य सिम्कलिन बनाने के लिए) एक फाइलसिस्टम पर जो "फाइल को डायरेक्ट्री" विचार के रूप में लागू करता है , जो कि दिखाई दिया - अन्य लेखकों के अलावा - reiserfs की योजनाओं में , लेकिन reiserfs के कार्यान्वयन कार्यान्वयन की समस्याओं के लिए पसंद नहीं किया गया था

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.