在pushd
ing 太多次之后,我想清除整个路径堆栈。
我将如何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 次 |
最近记录: |