Après pushd
ing trop souvent, je veux effacer toute la pile de chemins.
Comment irait-il popd
tous les éléments de la pile?
Je voudrais popd
Sans avoir besoin de savoir combien y a-t-il dans la pile?
Le manuel Bash ne semble couvrir ceci .
Pourquoi ai-je besoin de savoir ça? Je suis fastidieux et nettoyer la pile.
dirs -c
est ce que vous recherchez.
Afin de vider la pile et restaurer le répertoire de travail du bas de la pile, soit:
récupérez ce répertoire de dirs
, changez-le à ce répertoire et claire la pile:
cd "$(dirs -l -0)" && dirs -c
Les -l
Option ici va répertorier les chemins complets, pour vous assurer que nous n'échouons pas si nous essayons de cd
dans ~
, et le -0
récupère la première entrée du fond de la pile.
@ jw013 a suggéré de rendre cette commande plus robuste, en évitant les expansions des chemins:
pushd -0 && dirs -c
ou, popd
jusqu'à ce que vous rencontriez une erreur (qui correspond à l'état d'un appel popd
appeler lorsque la pile d'annuaires est vide):
while (( $? == 0 )); do popd; done