GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Abgekürztes aktuelles Verzeichnis in Shell-Eingabeaufforderung?

vim hat ein wirklich nettes Feature, das es in seinen Pfaden verwendet, wenn sie etwas lang sind:

Es kürzt den Pfad zum Dokument im oberen Reiter ab. Gibt es eine Möglichkeit, etwas Ähnliches zu tun, damit meine Bash-Eingabeaufforderung nicht so aussieht:

[email protected] ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $ 

Akzeptierte Antwort:

Versuchen Sie Folgendes:

PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'

oder reine Bash:

PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'

dann

PS1='[email protected] ${PS1X} $ '

produziert (beachten Sie den ~ für ${HOME} ):

[email protected] ~/D/P/W/m/s/m/j/c/tkassembled $

Ich habe meine Antwort dank @enzotib verbessert


Linux
  1. Shell-Init-Fehler beim Abrufen des aktuellen Verzeichnisses [Fix]

  2. Schnelle Verzeichnisnavigation in der Bash-Shell?

  3. $pwd? (im Vergleich zum aktuellen Arbeitsverzeichnis)?

  4. Wo wird ein Shell-Skript ausgeführt?

  5. .bashrc aus aktueller Shell neu generieren?

Pwd-Befehl in Linux (Aktuelles Arbeitsverzeichnis)

So fügen Sie ein Verzeichnis zu PATH in Linux hinzu

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

Wie konfigurieren Sie die Eingabeaufforderung in Linux, um das aktuelle Verzeichnis anzuzeigen?

Zeigt nur den aktuellen Verzeichnisnamen (nicht den vollständigen Pfad) an der Bash-Eingabeaufforderung an

Ausführen von Skripts aus einem anderen Verzeichnis