Как отобразить только имя рабочего каталога в префиксе оболочки?

В настоящее время я работаю в очень длинном каталоге. Возможно, что-то вроде:

~/Documents/c_prog/this_is_a_really_long_project_name/sub_directory/test_case/ 

Было бы замечательно, если бы я мог выполнить команду, когда я в этом каталоге, и она будет показывать только * sername@hostname ~/test_case$ вместо этой стены текста. Когда я перезапущу bash, он снова должен быть нормальным. Я полностью уверен в выполнении этой команды каждый раз, когда я нахожусь в этом каталоге.

Как я могу добиться чего-то подобного?

2 Solutions collect form web for “Как отобразить только имя рабочего каталога в префиксе оболочки?”

( bash 4 или новее)

Если вы установите PROMPT_DIRTRIM на ненулевой номер, он заменит каталоги после ~ на ... , сохранив заданное количество трейлинг-каталогов. Например, установка его в 1 даст вам

 username@hostname ~/.../test_case$ 

Замените escape-последовательность \w в вашем обычном PS1 с \W Таким образом, из вашего примера это будет что-то вроде:

 PS1='\u@\h \W\$ ' 
  • Изменить приглашение на основе значения
  • Повторение прогресса из фонового процесса без взлома
  • Почему что-то за $ PS3 показано, даже когда $ PS3 пуст?
  • Почему мое окно терминала говорит андроид перед пользователем?
  • В каких ситуациях PS2, PS3, PS4 используются в качестве подсказки?
  • Ошибка Bash, не распознающая escape-коды Unicode
  • подсказка bash не обертывается, как ожидалось
  • __git_ps1 (текущая ветка) в приглашении bash всегда устарела
  • Многострочный запрос PS1
  • Почему моя подсказка bash получает прослушивание, когда я просматриваю историю?
  • Изменение подсказки bash
  • Как избежать этих ложных символов в моей подсказке bash?
  • Linux и Unix - лучшая ОС в мире.