在pushding 太多次之后,我想清除整个路径堆栈。
我将如何popd处理堆栈中的所有项目?
我想popd不需要知道堆栈中有多少?
bash 手册似乎没有涵盖这一点。
为什么我需要知道这些?我很挑剔,要清理堆栈。
为了清空堆栈并从堆栈底部恢复工作目录,可以:
从 中检索该目录dirs,更改为该目录,然后清除堆栈:
cd "$(dirs -l -0)" && dirs -c
Run Code Online (Sandbox Code Playgroud)
-l此处的选项将列出完整路径,以确保我们在尝试cd进入时不会失败~,并-0从堆栈底部检索第一个条目。
@jw013 建议通过避免路径扩展来使此命令更加健壮:
pushd -0 && dirs -c
Run Code Online (Sandbox Code Playgroud)或者,popd直到遇到错误(这是popd目录堆栈为空时的调用状态):
while (( $? == 0 )); do popd; done
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
13845 次 |
| 最近记录: |