Bash w systemie Mac OS X nie zawsze dodaje ukośnika końcowego dla katalogów głównych


5

Korzystam z terminala w wersji 2.2.3 (303.2).

Problem polega na tym, że kiedy próbuję zmienić katalog zaczynając od roota, muszę podwoić tabulację, aby niektóre katalogi mogły się kończyć ukośnikiem.

Na przykład zaczynam pisać

cd /etTab

to daje mi:

/etc

Następnie muszę jeszcze raz nacisnąć klawisz Tab, aby uzyskać potrzebne końcowe slash

/etc/

I w końcu mogę Tabwszystkie kolejne katalogi za pomocą pojedynczego naciśnięcia karty.

Jak mogę to naprawić? Tak bardzo tęsknię za uderzeniem Ubuntu.


Nie cd /etcdziała pod OS / X?
Hennes,

Tak, ale muszę na przykład uzyskać dostęp do / etc / some / thing. I jestem przyzwyczajony do robienia tego przy użyciu mniejszej
liczby

1
@Hennes Terminal nie jest powłoką to aplikacja GUI, która korzysta z domyślnej powłoki
Matteo,

1
Możesz to opublikować jako własną odpowiedź. Może dodaj zrzut ekranu taki jak ten cdn.osxdaily.com/wp-content/uploads/2012/03/… Lub sprawdź to po zakończeniu bash. gnu.org/software/bash/manual/html_node/…
Hennes

1
Ciekawy. Zwykle mark-directoriesjest włączony w Bash i powinien robić, co chcesz . Zobacz także: Włączanie kompgena do umieszczania ukośników w katalogach podczas wyszukiwania plików
slhck 16.11.12

Odpowiedzi:


10

Wynika to z faktu, że w OS X /etcjest dowiązaniem symbolicznym:

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

to /etc jest plik, a nie katalog.

Jeśli spróbujesz prawdziwego katalogu, /usrzobaczysz oczekiwane zachowanie:

cd /us TAB

cd /usr/

Możesz zmusić Bash do traktowania dowiązań symbolicznych jako katalogów za pomocą tego polecenia:

bind 'set mark-symlinked-directories on'

Dodaj go do swojego .bashrcźródła i źródła (to znaczy, czytaj i wykonuj z niego polecenia) w następujący sposób:

. ~/.bashrc

lub ponownie otwórz Terminal.


Ach, całkowicie przegapiłem rzecz z dowiązaniem symbolicznym. Niezłe!
slhck

Tak, to bardzo specyficzne dla OS X. Innym przykładem /varjest symlinkowanie z private/var.
jaume

0

Niestety obecnie najłatwiejszym sposobem jest przełączenie /bin/bashna bin/zsh(Preferencje terminala - Powłoka otwarta za pomocą).

Szkoda jednak, że nie mogę łatwo osiągnąć potrzebnego zachowania dzięki bashowi „z pudełka”.

Nadal muszę eksportować moje aliasy i tak dalej ...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.