क्या ऐसी फाइल बनाना संभव है जो सिम्लिंक की तरह किसी अन्य फ़ाइल से बाइट्स का उप-अनुक्रम हो, लेकिन फ़ाइल के केवल एक हिस्से को संदर्भित कर रही हो?
क्या ऐसी फाइल बनाना संभव है जो सिम्लिंक की तरह किसी अन्य फ़ाइल से बाइट्स का उप-अनुक्रम हो, लेकिन फ़ाइल के केवल एक हिस्से को संदर्भित कर रही हो?
जवाबों:
नहीं, आपको या तो पूरी फ़ाइल का संदर्भ लेना चाहिए, या आपको उस फ़ाइल के भाग की प्रतिलिपि बनानी होगी जिसमें आप रुचि रखते हैं।
हां, कम से कम कुछ सीमाओं के साथ लिनक्स पर यह (कुछ हद तक) संभव है।
विधि एक रीड-राइट लूप डिवाइस बनाने के लिए है जो फ़ाइल के सबसेट पर मैप करती है।
उदाहरण के लिए:
#!/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 बाइट्स) के कई होने चाहिए।
लूप डिवाइस को बनाने और उस तक पहुंचने के लिए आपको संभवतः रूट होना होगा।
यदि आपको एक सिमलिंक की आवश्यकता है, तो आप एक ऐसा बना सकते हैं जो लूप डिवाइस को इंगित करता है।
यह संभव हो सकता है (एक फ़ाइल के एक हिस्से की ओर इशारा करते हुए एक सामान्य सिम्कलिन बनाने के लिए) एक फाइलसिस्टम पर जो "फाइल को डायरेक्ट्री" विचार के रूप में लागू करता है , जो कि दिखाई दिया - अन्य लेखकों के अलावा - reiserfs की योजनाओं में , लेकिन reiserfs के कार्यान्वयन कार्यान्वयन की समस्याओं के लिए पसंद नहीं किया गया था ।