심볼릭 링크와 같은 다른 파일에서 바이트의 하위 시퀀스 인 파일을 만들 수는 있지만 파일의 일부만 참조 할 수 있습니까?
답변
아니요. 전체 파일을 참조하거나 관심있는 파일의 일부를 복사해야합니다.
답변
예, 적어도 약간의 제한이 있지만 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”아이디어 를 구현하는 파일 시스템에서 파일의 일부를 가리키는 일반 심볼릭 링크를 만들 수 있습니다. 구현으로 인한 문제가 마음 에 들지 않았습니다 .