ADMIN-Tipp: Verzeichnis-Stack speichern

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Der Directory Stack der Bash-Shell ist praktisch, wenn man viel durch Verzeichnisse navigiert. Mit ein paar zusätzlichen Kommandos lässt er sich über Login-Sessions hinweg speichern. 

Um das Wechseln zwischen häufig genutzen Verzeichnissen zu vereinfachen, bietet die Bash-Shell (wie auch ihre Kollegen Zsh und Tcsh) einen Directory Stack. Dabei wechselt der Befehl "pushd" in ein Verzeichnis und legt es auf den Stack. "popd" entfernt das oberste Elemente wieder und wechselt in das darunterlegende, nun neue oberste Verzeichniselement.

Wer sich häufig in den gleichen Verzeichnissen bewegt, wird sich vielleicht wünschen, die am häufigsten verwendeten Verzeichnisse dauerhaft abzuspeichern. Das lässt sich leicht bewerkstelligen, indem man beim Ausloggen den Stack in einer Datei speichert und beim Einloggen wiederherstellt. Für Befehle, die die Shell vor dem Ausloggen ausführt, bietet die Bash die Datei ".bash_logout". Fürs Einloggen gibt es etwa die Datei ".bash_profile" im Home-Verzeichnis. In die Logout-Datei gehören dann die folgenden Zeilen:

popd -n 0
dirs -l -p > ~/.dirstack.txt

Die erste Zeile ist quasi ein Workaround für ein Problem, das sonst auftritt. Es löscht immer das erste Element des Stacks, das beim Einloggen automatisch auf das aktuelle Verzeichnis gesetzt wird. Ohne die Zeile würden sich hier die Einträge des Home-Verzeichnisses bei jedem Ein- und Ausloggen duplizieren. Die zweite Zeile schreibt den Stack zeilenweise in die Datei "~/.dirstack.txt".

Wiederherstellen lässt sich der Verzeichnis-Stack mit einer Zeile in ".bash_profile":

for d in $(tac ~/.dirstack.txt); do pushd "$d" > /dev/null; done

Die Zeilen lassen sich natürlich beliebig modifizieren. Zum Beispiel könnte man mit If-Abfragen bestimmte Verzeichnisse ausfiltern, den automatischen Wechsel in die Verzeichnisse unterdrücken ("pushd -n") oder den Stack auf ganz andere Weise verwalten. 

03.09.2013

Ähnliche Artikel

  • ADMIN-Tipp: Überraschendes cd

    Manchmal verbergen sich hinter den unscheinbarsten Dingen, bei denen es keiner erwartet, noch überraschend praktische Tipps. Beispielsweise ist cd sicher eins der häufigsten Shell-Kommandos überhaupt, seine Funktion ist in einem Satz erklärt und damit scheint alles gesagt. Trotzdem kann man hier noch weniger bekannte, nützliche Tricks finden.

  • Tmux beim Einloggen starten

    Ach hätte ich doch bloß ... mit einem kleinen Trick gehen Remote-Sessions nicht mehr so leicht verloren.

  • SELinux hilft (wenig) gegen Bash-Exploit Shellshock

    Der Red-Hat-Entwickler Dan Walsh hat analysiert, was passiert, wenn ein Apache-Server mit SELinux geschützt ist.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023