Apakah mungkin untuk membuat file yang hanya merupakan sub-urutan byte dari file lain, seperti symlink, tetapi hanya merujuk sebagian file?
Apakah mungkin untuk membuat file yang hanya merupakan sub-urutan byte dari file lain, seperti symlink, tetapi hanya merujuk sebagian file?
Jawaban:
Tidak. Anda harus mereferensikan seluruh file, atau Anda harus menyalin bagian dari file yang Anda minati.
Ya, itu (agak) mungkin setidaknya di Linux dengan beberapa batasan.
Metode ini adalah membuat perangkat loop baca-tulis yang memetakan ke subset file.
misalnya:
#!/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
keluaran:
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
Saya percaya baik offset dan ukurannya harus kelipatan dari ukuran blok (512 byte).
Anda mungkin perlu root untuk membuat dan mengakses perangkat loop.
Jika Anda memerlukan symlink, Anda dapat membuatnya yang menunjuk ke perangkat loop.
Mungkin saja (untuk membuat symlink normal yang menunjuk ke bagian file) pada sistem file yang mengimplementasikan ide "file as directory" , yang muncul - selain penulis lain - dalam rencana reiserfs , tetapi implementasi reiserfs tidak disukai untuk masalah yang disebabkan implementasi.