
Я установил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