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.

  • 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

Artikel der Woche

Systeme mit Vamigru verwalten

Auch wer nur kleine Flotten von Linux-Servern verwaltet, freut sich über Werkzeuge, die ihm diese Arbeit erleichtern. Vamigru tritt mit diesem Versprechen an. Wir verraten, was es leistet und wie Sie es in der eigenen Umgebung in Betrieb nehmen. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite