Sie können die Liste der Verzeichnisse in einer Datei speichern, eines pro Zeile, und sie in der neuen Shell wiederherstellen, indem Sie sie pushd
in jeder Zeile wiederholt ausführen . Dies setzt voraus, dass Sie keine Verzeichnisse mit Zeilenumbrüchen im Namen haben.
bash hat zwar eine eingebaute Variable DIRSTACK
, die die Liste der Verzeichnisse enthält, aber leider ist dies nicht von großem Nutzen, da Sie diesem Array keine neuen Elemente hinzufügen können (obwohl Sie vorhandene Einträge ändern können).
So speichern Sie die Liste einfach
dirs -p >~/mydirs
Das Wiederherstellen ist etwas komplexer. Zuerst lesen wir die Datei in ein Array v
und durchlaufen sie dann in umgekehrter Reihenfolge, bis Eintragsindex 1 angezeigt wird. Ich habe bei Index 1 gestoppt und nicht bei 0, da der 0. Eintrag zum aktuellen Zeitpunkt nur das aktuelle Verzeichnis ist dirs -p
. Sie können wählen, ob Sie dies möchten oder nicht.
dirs -c # clear IFS=$'\n' read -r -d '' -a v <~/mydirs for ((i=${#v[*]}-1; i>=1; i--)) do pushd -n "$" >/dev/null done
Es wäre sinnvoll, diesen Code in einer Bash - Funktion zu speichern und von Ihrem aus aufzurufen ~/.bashrc
.