Por que não posso mudar para um diretório avfs virtual com aspas?

1

Eu instalei o avfs para poder montar arquivos compactados como diretórios. Eu criei um ponto de montagem com:

mkdir ~/.avfs
avfsd ~/.avfs

De lá, posso fazer coisas como cd ~/.avfs/some/path/foo.tar.gz#/ fine.

No entanto, notei que, se eu colocar o caminho entre aspas duplas, cd falhará:

~ $ 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

Por que as citações são importantes? Eu não esperaria que as aspas ficassem visíveis para nada além do shell, mas isso parece acontecer apenas com os caminhos que envolvem ~/.avfs . A única explicação que posso pensar é que bash está validando o caminho (que, por ser virtual, ainda não existe), mas não consigo explicar por que a citação causaria isso.

Estou usando bash 4.3.48 (1) -release. avfsd relatórios para informações de versão:

FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
    
por jamesdlin 19.05.2017 / 07:37

1 resposta

2

O que está acontecendo é que quando você coloca o caminho entre aspas duplas, o ~ não é expandido pelo bash - normalmente os programas não têm noção de que ~ representa seu diretório pessoal!

Você pode validar isso testando os dois comandos a seguir no bash:

# echo ~/test
/home/rabban/test
# echo "~/test"
~/test
    
por 19.05.2017 / 07:42