1156 Stimmen

Abfrage des aktuellen Verzeichnisnamens (ohne vollständigen Pfad) in einem Bash-Skript

Wie würde ich nur den Namen des aktuellen Arbeitsverzeichnisses in einem Bash-Skript, oder noch besser, nur einen Terminal-Befehl erhalten.

pwd gibt den vollständigen Pfad des aktuellen Arbeitsverzeichnisses an, z. B. /opt/local/bin aber ich will nur bin

3voto

Gautam Sreekumar Punkte 386

Wenn Sie nur das aktuelle Verzeichnis in der Bash-Prompt-Region sehen wollen, können Sie .bashrc Datei in ~ . Ändern Sie \w a \W in der Zeile:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Laufen lassen source ~/.bashrc und es wird nur der Name des Verzeichnisses im Bereich der Eingabeaufforderung angezeigt.

Ref: https://superuser.com/questions/60555/show-only-current-directory-name-not-full-path-on-bash-prompt

2voto

Steve Benner Punkte 1657

Ich bevorzuge die Verwendung von gbasename , das Teil der GNU coreutils ist.

0voto

niks_4143 Punkte 87

Sie können das Dienstprogramm basename verwenden, das alle Präfixe, die auf / enden, und das Suffix (falls in string vorhanden) aus string löscht und die Ergebnis auf der Standardausgabe ausgibt.

$basename <path-of-directory>

0voto

Benjamin Zach Punkte 1131

Entfernen Sie einfach ein beliebiges Zeichen, bis ein / (o \ wenn Sie mit Windows arbeiten). Da das Spiel gierig gemacht wird, wird es alles bis zum letzten Eintrag entfernen. / :

pwd | sed 's/.*\///g'

In Ihrem Fall ist das Ergebnis wie erwartet:

 a='/opt/local/bin'

 echo $a | sed 's/.*\///g'
bin

-1voto

Paul Sabou Punkte 2917

Mit den folgenden Befehlen können Sie Ihr aktuelles Arbeitsverzeichnis in einem Bash-Skript ausgeben.

pushd .
CURRENT_DIR="`cd $1; pwd`"
popd
echo $CURRENT_DIR

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X