
설치했습니다avfs아카이브 파일을 디렉토리로 투명하게 마운트할 수 있습니다. 다음을 사용하여 마운트 지점을 만들었습니다.
mkdir ~/.avfs
avfsd ~/.avfs
거기에서 나는 cd ~/.avfs/some/path/foo.tar.gz#/
괜찮은 일을 할 수 있습니다.
그러나 경로를 큰따옴표로 묶으면 cd
실패한다는 것을 확인했습니다.
~ $ cd ~/.avfs/usr/local/bin/
~/.avfs/usr/local/bin $ cd "~/.avfs/usr/local/bin/"
bash: cd: ~/.avfs/usr/local/bin/: No such file or directory
따옴표가 왜 중요할까요? 나는 따옴표가 쉘 이외의 어떤 것에도 보일 것이라고 기대하지 않지만 이것은 관련된 경로에서만 발생하는 것 같습니다 ~/.avfs
. 내가 생각할 수 있는 유일한 설명은 bash
경로의 유효성을 검사하는 것입니다(이 경로는 가상이기 때문에 아직 존재하지 않습니다). 그러나 인용하면 왜 그런 일이 발생하는지 설명할 수 없습니다.
bash
4.3.48(1) 릴리스를 사용하고 있습니다 . avfsd
버전 정보 보고서:
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
답변1
무슨 일이 일어나고 있는지는 경로를 큰따옴표로 묶을 때 ~가 bash에 의해 확장되지 않는다는 것입니다. 일반적으로 프로그램에는 ~가 홈 디렉토리를 의미한다는 개념이 없습니다!
Bash에서 다음 두 명령을 시도하여 이를 확인할 수 있습니다.
# echo ~/test
/home/rabban/test
# echo "~/test"
~/test