Respostas:
Você pode usar a Tabtecla depois de pressionar os primeiros caracteres (isso "preencherá" o restante da pasta para você, por exemplo, digite cd ~/L
Tabpreenchimento cd ~/Library/
e digite Ap
Tabe preencherá o restante para você.
Se houver um espaço entre as palavras e você não quiser usar os métodos acima, coloque uma \
(barra invertida) antes do espaço, por exemplo cd ~/Library/Application\ Support
.
shopt -s nocaseglob
e bind 'set completion-ignore-case on'
tornar o bash menos sensível ao caso.
A questão principal aqui é como o shell ( bash ) faz citações e como isso afeta a expansão do til e a divisão em “palavras” (argumentos para o programa que está sendo executado).
o bash trata apenas o til principal, especialmente se não estiver entre aspas. Além disso, a barra a seguir também não deve ser citada.
Ao mesmo tempo, o bash analisa as linhas de comando em "palavras" com base no espaço em branco não citado. O cd
comando normalmente requer exatamente um argumento (o diretório de destino). Uma linha de comando como cd foo bar
significa executar cd
com dois argumentos: foo
e bar
. Se você deseja enviar apenas um foo bar
argumento, é necessário citar o espaço:
(por exemplo) cd foo\ bar
(veja mais exemplos de citações abaixo).
Na sua situação específica, é necessário deixar o til e a barra a seguir sem aspas ao citar o espaço no nome do diretório. Sua cd "~/Library/Application Support/"
avaliação acaba citando demais (o til e sua barra), enquanto sua cd ~/Library/Application Support/
avaliação cita muito pouco (omite a citação do espaço no nome do diretório).
A solução mais comum é usar escape de um caractere para citar apenas o espaço:
cd ~/Library/Application\ Support
Você também pode usar aspas simples ou duplas em torno do espaço ou do espaço e alguns outros bits desse argumento (mas não o ~/
!):
cd ~/Library/Application' 'Support
cd ~/Library/Application" "Support
cd ~/Library/App'lication 'Support
cd ~/Library/Application" Supp"ort
cd ~/'Library/Application 'Support
cd ~/"Library/Application "Support
Esses tipos de citações têm significados diferentes, mas são idênticos nesses exemplos. As aspas simples protegem as cadeias literais, enquanto as aspas duplas permitem várias expansões e substituições na região entre aspas.
Muitas vezes, você pode simplesmente deixar o shell fazer o trabalho por você.
Globbing (curingas):
cd ~/L*/Ap*
Você pode usar shopt -s nocaseglob
para tornar a caixa invertida insensível:
cd ~/l*/ap*
Conclusão:
Pressionando Tabdepois de entrar cd ~/L
, provavelmente, expandi-lo para cd ~/Library/
.
Pressionar Tabnovamente após entrar Ap
(agora você tem cd ~/Library/Ap
) provavelmente o expandirá para cd ~/Library/Application\ Support/
(o shell inseriu automaticamente a barra invertida).
Você pode usar bind 'set completion-ignore-case on'
para tornar a conclusão sem distinção entre maiúsculas e minúsculas:
cd ~/l
Tab→ cd ~/Library/
; ap
Tab→cd ~/Library/Application\ Support/
Ao citar duas vezes um caminho, você está interrompendo a expansão do til. Portanto, existem algumas maneiras de fazer isso:
cd ~/"My Code"
cd ~/'My Code'
O til não é citado aqui, portanto a expansão do til ainda será executada.
cd "$HOME/My Code"
Você pode expandir variáveis de ambiente dentro de cadeias de caracteres com aspas duplas; isso é basicamente o que a expansão til está fazendo
cd ~/My\ Code
Você também pode escapar de caracteres especiais (como espaço) com uma barra invertida.
Você pode tentar fazer isso para pastas / arquivos espaçados, se o nome do arquivo ou da pasta contiver 1) nome do arquivo. Extensão o comando deve ser cd ~ / arquivo \ nome.extensão / (ou) cd ~ / "nome do arquivo.extensão" /