Question Mac OS X bash n'ajoute pas toujours une barre oblique finale pour les répertoires racine


J'utilise Terminal Version 2.2.3 (303.2).

Le problème est que lorsque j'essaie de changer de répertoire à partir de root, je dois doubler la tabulation de certains répertoires pour obtenir une barre oblique.

Par exemple, je commence à taper

cd /etLanguette 

ça me donne:

/etc

Ensuite, je dois frapper encore une fois pour obtenir une barre oblique

/etc/

Et puis enfin je peux Languette tous les autres répertoires utilisant un seul tabulation.

Comment puis-je réparer cela? Ubuntu me manque tellement.


4
2017-11-16 07:14


origine


Est-ce que cd /etc ne fonctionne pas sous OS / X? - Hennes
C'est le cas, mais j'ai besoin d'accéder à / etc / some / thing par exemple. Et je suis habitué à le faire en utilisant moins de robinets de tabulation :) - Vitalii Zurian
@Hennes Terminal n'est pas un shell est une application graphique qui utilise le shell par défaut - Matteo
N'hésitez pas à poster cela comme votre propre réponse. Peut-être ajouter une capture d'écran comme celle-ci cdn.osxdaily.com/wp-content/uploads/2012/03/...   Ou consultez ceci à la fin de la session. gnu.org/software/bash/manual/html_node/ ... - Hennes
Intéressant. Habituellement, mark-directories est activé dans Bash, et devrait fais ce que tu veux. Voir également: Obtenir compgen pour inclure des barres obliques dans les répertoires lors de la recherche de fichiers - slhck


Réponses:


C'est parce que, sous OS X, /etc est un lien symbolique:

$ l /etc
lrwxr-xr-x 1 root 11 2012-09-22 09:02 /etc -> private/etc/

C'est, /etc  est un fichier, pas un répertoire.

Si vous essayez un vrai répertoire, comme /usr, vous verrez le comportement attendu:

cd /us  LANGUETTE 

cd /usr/

Vous pouvez forcer Bash à traiter les répertoires avec lien symbolique comme des répertoires avec cette commande:

bind 'set mark-symlinked-directories on'

Ajoutez-le à votre .bashrc et le source (c'est-à-dire lire et exécuter des commandes) comme ceci:

. ~/.bashrc

ou rouvrir le terminal.


9
2017-11-16 07:53



Ah, complètement raté la chose de lien symbolique. Joli! - slhck
Oui, c'est très spécifique à OS X. Un autre exemple est /var, il est lié à private/var. - jaume


Malheureusement, le moyen le plus simple pour moi est de passer de /bin/bash à bin/zsh (Préférences du terminal - Shell ouvert avec).

C'est dommage cependant, que je ne peux pas facilement réaliser le comportement nécessaire avec bash "from the box".

Et je dois encore exporter mes alias et ainsi de suite ...


0
2017-11-16 07:33