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.

macos  bash  shell 

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).


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

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.


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'

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"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.