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.

macos  bash  shell 

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


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

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.


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'

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"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.