automatycznie uruchamia ls po zmianie ścieżki za pomocą autocd

8

Dlatego za każdym razem, gdy zmieniam katalog, chciałbym, aby nowa ścieżka automatycznie wyświetlała się na liście ls.
Istnieją rozwiązania, jeśli ścieżka zmienia się za pomocą, cdale nigdy nie znalazłem rozwiązania, które działałoby, gdy ścieżka zmienia się za pomocą autocdopcji.

Byłoby to całkiem wygodne, czy ktoś wcześniej to osiągnął?

brillout
źródło

Odpowiedzi:

5

Możesz to osiągnąć, zmieniając zmienną PROMPT_COMMANDwykonywaną przed PS1, np .:

PROMPT_COMMAND='ls'

Spowoduje to wyświetlenie listy za każdym razem, gdy pojawi się nowy monit. Oczywiście chcesz wykonać tylko, lsjeśli katalog się zmienił:

PROMPT_COMMAND='[[ $my_currdir != $PWD ]] && ls; my_currdir=$PWD'

To sprawdza, czy nowy katalog nie jest taki sam jak ostatni zestaw, a następnie wykonuje ls, po czym bieżący katalog jest przechowywanymy_currdir

Znalazłem jeszcze lepszą linię tutaj , gdzie używanie bash jako menedżera plików :

PROMPT_COMMAND='[[ ${__new_wd:=$PWD} != $PWD ]] && list; __new_wd=$PWD'

ponieważ możliwe jest, że __new_wdjest to nieustawione, możesz przypisać wartość domyślną, która zostanie użyta w tym przypadku (patrz bashstrony podręcznika, wyszukaj :=)

steabert
źródło