Таким образом, каждый раз, когда я меняю каталог, я хотел бы, чтобы новый путь автоматически отображался с ls
.
Существуют решения, если путь изменяется с помощью cd
, но я никогда не находил решение, которое бы работать, когда путь изменяется, используя опцию autocd
.
Было бы довольно удобно, кто-нибудь достиг этого раньше?
Можно достигнуть этого путем заменения переменной PROMPT_COMMAND
, который выполняется перед PS1, например:
PROMPT_COMMAND='ls'
Это перечислит каждый раз, когда Вы получаете новую подсказку. Конечно, Вы только хотите выполниться ls
, если каталог изменился:
PROMPT_COMMAND='[[ $my_currdir != $PWD ]] && ls; my_currdir=$PWD'
Это проверяет, не является ли новый каталог тем же как последним набором, и затем выполняется ls
, после которого Ваш текущий каталог хранится в my_currdir
, я нашел еще лучшую строку здесь , где они используют удар в качестве файлового менеджера :
PROMPT_COMMAND='[[ ${__new_wd:=$PWD} != $PWD ]] && list; __new_wd=$PWD'
, так как возможно, что __new_wd
сброшен, можно присвоить значение по умолчанию, которое будет использоваться в этом случае (см. bash
страницы справочника, ищите :=
)