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

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

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

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

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

  • g ++ bash: warning: programmable_completion: g ++: возможный цикл повтора
  • while цикл работает только один раз?
  • Сохранить пароль в скрипте bash для нескольких запросов
  • Как можно переопределить bash Ctrl + C, чтобы быть более похожим на рыбу
  • Как распечатать символ разделителя и разрешить пользователю редактировать строку при чтении стандартного ввода?
  • Как удалить файл с именем «>»?
  • Интерактивное удаление файлов из списка
  • Завершить обычную вкладку Force Bash, если интеллектуальное завершение завершится неудачей
  • 2 Solutions collect form web for “Как отобразить только имя рабочего каталога в префиксе оболочки?”

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

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

     username@hostname ~/.../test_case$ 

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

     PS1='\u@\h \W\$ ' 
    Linux и Unix - лучшая ОС в мире.