파일의 일부에 Symlink? 같은 다른

심볼릭 링크와 같은 다른 파일에서 바이트의 하위 시퀀스 인 파일을 만들 수는 있지만 파일의 일부만 참조 할 수 있습니까?



답변

아니요. 전체 파일을 참조하거나 관심있는 파일의 일부를 복사해야합니다.


답변

예, 적어도 약간의 제한이 있지만 Linux에서는 가능합니다.

방법은 파일의 서브 세트에 맵핑되는 읽기 / 쓰기 루프 장치를 작성하는 것입니다.

예 :

#!/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의 구현에 나타난 “file as directory”아이디어 를 구현하는 파일 시스템에서 파일의 일부를 가리키는 일반 심볼릭 링크를 만들 수 있습니다. 구현으로 인한 문제가 마음들지 않았습니다 .