Avec bash, existe-t-il un moyen d’afficher et de supprimer le répertoire de travail actuel? J'ai essayé d'écrire bash;cd dir; ./dostuff;exit;
mais le répertoire actuel est maintenant dir
.
66
Il y a pushd
etpopd
Bash gardera un historique des répertoires que vous visitez, il vous suffit de demander. Bash stocke l'historique dans une pile et utilise les commandes pushd et popd pour gérer la pile.
Exemple:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.
L'appel
bash
commence un nouveau sous-shell, qui a sa propre entrée; aucune des autres commandes ne s'exécutera jusqu'à ce qu'elle se termine. Le fait d'entourer les commandes à exécuter avec des parens démarrera également un nouveau sous-shell, mais les commandes qu'il contient seront exécutées.la source
Si vous n'avez pas besoin de plusieurs niveaux d'historique de répertoires, vous pouvez également effectuer les tâches suivantes:
Comparé à
pushd
/popd
, cela a pour inconvénient que si vouscd foo
échouez, vous vous retrouvez dans le mauvais répertoire aveccd -
.(Probablement
cd -
est plus pratique en dehors des scripts. "Revenons où je venais.")la source
J'utilise alias pour suivre les modifications de mon répertoire. Je peux donc "cd" quelque part, je peux simplement revenir à l'endroit où j'utilisais "cd.", Ou deux en utilisant "cd ..", etc.
la source
..cd
assez robuste? il semble que cela ne supprime que les 10 derniers éléments de la pile.