удаление или очистка стопки дорожек popd / pushd

После многократного нажатия, я хочу очистить весь стек путей.

Как бы я popd все элементы в стек?

Я бы хотел popd не зная, сколько в стеке?

Руководство bash, похоже, не охватывает этого .

Зачем мне это знать? Я старателен и очищаю стопку.

dirs -c – это то, что вы ищете.

Чтобы очистить стек и восстановить рабочий каталог из нижней части стека, извлеките этот каталог из dirs , перейдите в этот каталог и очистите стек:

 cd "$(dirs -l -0)" && dirs -c 

Параметр -l здесь перечисляет полные пути, чтобы убедиться, что мы не сможем, если попытаемся записать cd в ~ , а -0 просто извлекает только первую запись из нижней части стека.

Другой способ сделать это – popd пока мы не popd с ошибкой (которая является статусом вызова popd когда стек каталога пуст):

 while (( $? == 0 )); do popd; done