Comment cd dans un répertoire qui contient un espace dans son nom?

47

J'ai un répertoire appelé "Reader 0.5" dans mon bureau sur Mac Os X. Quand accéder au répertoire dans le terminal, j'utilise le code ci-dessous:

cd /Users/niho/Desktop/Reader 0.5

mais ça jette:

Aucun fichier ou répertoire de ce nom

Erreur.

Comment puis-je cd dans ce répertoire?

Merci.


la source

Réponses:

64

Soit vous mettez des guillemets autour du nom du répertoire ( cd "/Users/niho/Desktop/Reader 0.5") ou vous échappez le nom du répertoire ( /Users/niho/Desktop/Reader\ 0.5).

Joschi
la source
5
Juste pour des raisons d'exhaustivité, vous pouvez également décider de ne citer que quelques parties de l'argument, du type cd /Users/niho/Desktop/"Reader 0.5"ou mêmecd /Users/niho/Desktop/Reader" "0.5
user123444555621
3
Le dernier (infixe citations) était nouveau pour moi. Merci!
joschi
Maintenant: comment placez-vous le chemin avec les espaces infixes dans une variable env afin de pouvoir le faire % cd $foo?
Bogatyr
8

Vous pouvez échapper à l'espace:

cd /Users/niho/Desktop/Reader\ 0.5
Félix
la source
4

Comme d’autres l’ont mentionné, citer le chemin ou éviter les barres obliques inverses fonctionnera.

En outre, bash, le shell par défaut sous Mac OS X, prend en charge l’achèvement de la ligne de commande à l’aide de la touche de tabulation. Donc par exemple si vous tapez:

cd /Users/niho/Desktop/Re

appuyez ensuite sur la touche Tab, le shell remplira le reste du nom du dossier (tant qu’il n’y aura pas d’autres dossiers sur votre bureau commençant par "Re"), et se chargera de citer les arguments de cd s’il ya des espaces dans le nom du répertoire, il remplit.

Simon Whitaker
la source
4

Fyi, l'utilisation du raccourci Tab dans bash se briserait au premier espace rencontré si plusieurs répertoires ont des prénoms identiques. Dans de tels cas, un utilisateur devrait utiliser:

cd Adobe\ Creative\ Cloud/

ou ce que je préfère

cd 'Adobe Creative Cloud'
Ricardo Fernandez
la source
Les guillemets ne fonctionnent pas pour bash et zsh: `` `bash 2 => cd '~ / Library /' bash: cd: ~ / Library /: Aucun fichier ou répertoire de ce type 3 => cd ~ / Library / 4 => pwd / Users / pguruprasad / Library `` `
Prasanth
-1

Voici un moyen plus confortable si vous souhaitez utiliser les commandes cd avec certains répertoires plus souvent. Cela évite d'écrire le nom du répertoire à chaque fois.

Dans votre .bashrc ou .profile, insérez:

# activate cdable_vars
shopt -s cdable_vars

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

Exécutez votre script une fois: . .bashrc

Ensuite, vous pouvez vous connecter à votre répertoire comme ceci:

cd DIR

Cela devrait fonctionner même si le chemin contient des espaces.

Dans les scripts shell, cependant, vous devez citer la variable comme ceci:

cd "$DIR"
Haricot agile
la source