web-dev-qa-db-fra.com

Conserver $ OLDPWD entre les sessions Shell

Souvent, je quitte le terminal et le lendemain, lancez-le à nouveau. Ensuite, je veux pouvoir revenir rapidement au dernier répertoire de travail.

Je voudrais faire ceci en utilisant cd - comme d'habitude. Mais $OLDPWD n'est pas conservé entre les sessions de terminal.

J'ai donc ajouté un alias pour exit afin d'écrire pwd dans un fichier et de le lire au prochain démarrage.

alias exit='pwd > ~/.lwd && exit;'
test -f ~/.lwd && export OLDPWD=`head -1 ~/.lwd`

Cela fonctionne parfaitement pour exit.

Comment créer le même alias (ou créer un piège) pour Ctrl+D?

2
pLumo

Utilisez trap pour ajouter un gestionnaire pour EXIT:

trap 'pwd > ~/.lwd' EXIT

Cela devrait gérer à la fois la commande exit et CtrlD. Le reste, vous pouvez faire comme pour l'alias.

4
muru

Merci à Anwar de me conduire dans la bonne direction. Ce message de Unix & Linux Stack Exchange m'a aidé.

J'ai créé un fichier ~/.bash_logout avec le contenu suivant:

echo "$PWD" > ~/.lwd

Dans ~/.bashrc j'ai ajouté:

test -f ~/.lwd && export OLDPWD=`head -1 ~/.lwd`

Cela fonctionne pour exit et  CtrlD pour les connexions gnome-terminal et ssh.

2
pLumo