
ich installierteavfsum Archivdateien transparent als Verzeichnisse mounten zu können. Ich habe einen Mount-Punkt erstellt mit:
mkdir ~/.avfs
avfsd ~/.avfs
Von dort aus kann ich Dinge tun wie cd ~/.avfs/some/path/foo.tar.gz#/
: „OK“.
Mir ist jedoch aufgefallen, dass das Einfügen des Pfads in doppelte Anführungszeichen cd
fehlschlägt:
~ $ 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
Warum sollten Anführungszeichen wichtig sein? Ich würde nicht erwarten, dass die Anführungszeichen für irgendjemanden außer der Shell sichtbar sind, aber das scheint nur bei Pfaden zu passieren, die enthalten ~/.avfs
. Die einzige Erklärung, die mir einfällt, ist, dass bash
der Pfad validiert wird (der, da er virtuell ist, noch nicht existiert), aber ich kann nicht erklären, warum Anführungszeichen das verursachen würden.
Ich verwende bash
die Version 4.3.48(1). avfsd
Berichte für Versionsinformationen:
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
Antwort1
Was passiert, ist, dass wenn Sie den Pfad in Anführungszeichen setzen, das ~ von Ihrer Bash nicht erweitert wird – normalerweise haben Programme keine Ahnung, dass ~ für Ihr Home-Verzeichnis steht!
Sie können dies überprüfen, indem Sie die folgenden beiden Befehle in Bash ausprobieren:
# echo ~/test
/home/rabban/test
# echo "~/test"
~/test