Como cd para um diretório que contém um espaço em seu nome?

47

Eu tenho um diretório chamado "Reader 0.5" na minha área de trabalho no Mac Os X. Quando acessar o diretório no terminal, estou usando o código abaixo:

cd /Users/niho/Desktop/Reader 0.5

mas joga:

Não existe tal arquivo ou diretório

erro.

Como posso entrar nesse diretório?

Obrigado.


fonte

Respostas:

64

Você coloca aspas no nome do diretório ( cd "/Users/niho/Desktop/Reader 0.5") ou escapa do nome do diretório ( /Users/niho/Desktop/Reader\ 0.5).

joschi
fonte
5
Apenas por uma questão de exaustividade, você também pode decidir a citar partes apenas do argumento, como cd /Users/niho/Desktop/"Reader 0.5"ou até mesmocd /Users/niho/Desktop/Reader" "0.5
user123444555621
3
O último (aspas infix) era novo para mim. Obrigado!
Joschi
Agora: como você coloca o caminho com os espaços infix em uma var env para que você possa fazer % cd $foo?
Bogatyr
8

Você pode escapar do espaço:

cd /Users/niho/Desktop/Reader\ 0.5
Felix
fonte
4

Como outros já mencionaram, citar o caminho ou escapar com barra invertida dos espaços funcionará.

Além disso, o bash, o shell padrão no Mac OS X, suporta a conclusão da linha de comando usando a tecla Tab. Então, por exemplo, se você digitar:

cd /Users/niho/Desktop/Re

depois pressione a tecla Tab, o shell preencherá o restante do nome da pasta (desde que não haja outras pastas na área de trabalho começando com "Re") e cuidará de citar os argumentos para cd se houver espaços no nome do diretório que ele preenche.

Simon Whitaker
fonte
4

Por outro lado, usar o atalho Tab no bash seria interrompido no primeiro espaço encontrado, se vários diretórios tivessem nomes idênticos. Nesses casos, um usuário teria que usar:

cd Adobe\ Creative\ Cloud/

ou o que eu prefiro,

cd 'Adobe Creative Cloud'
Ricardo Fernandez
fonte
No bash e no zsh, a citação não funciona para mim: `` `` bash 2 => cd '~ / Library /' bash: cd: ~ / Library /: Não existe esse arquivo ou diretório 3 => cd ~ / Library / 4 => pwd / Users / pguruprasad / Library ``
Prasanth
-1

Aqui está uma maneira mais confortável, se você quiser usar os comandos cd para determinados diretórios com mais frequência. Evita escrever o nome do diretório todas as vezes.

No seu .bashrc ou .profile, insira:

# activate cdable_vars
shopt -s cdable_vars

# define shortcut for your directory, here DIR
export DIR="/Users/<username>/path/to/your/dir"

Execute seu script uma vez: . .bashrc

Então você pode fazer o cd no seu diretório assim:

cd DIR

Isso deve funcionar mesmo que o caminho contenha espaços.

No script de shell, no entanto, você deve citar a variável assim:

cd "$DIR"
Feijão ágil
fonte