автоматически запускать ls после изменения пути с помощью autocd

8

Поэтому каждый раз, когда я меняю каталог, я хочу, чтобы новый путь автоматически отображался в списке ls.
Существуют решения, если путь изменяется с использованием, cdно я никогда не находил решение, которое работало бы, когда путь изменялся с использованием autocdопции.

Было бы довольно удобно, кто-нибудь достиг этого раньше?

brillout
источник

Ответы:

5

Вы можете добиться этого, изменив переменную PROMPT_COMMAND, которая выполняется до PS1, например:

PROMPT_COMMAND='ls'

Это будет список каждый раз, когда вы получаете новое приглашение. Конечно, вы хотите выполнить только lsесли каталог изменился:

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

Это проверяет, не новый ли каталог совпадает с последним установленным, а затем выполняется ls, после чего текущий каталог сохраняется вmy_currdir

Я нашел еще лучшую строку здесь , где они используют bash в качестве файлового менеджера :

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

поскольку возможно, что __new_wdэто не установлено, вы можете назначить значение по умолчанию, которое будет использоваться в этом случае (см. bashсправочные страницы, поиск :=)

steabert
источник