
インストールしました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 で次の 2 つのコマンドを実行します。
# echo ~/test
/home/rabban/test
# echo "~/test"
~/test