如何在Nushell中移除目录栈条目及删除会话内别名?
解决目录栈移除与别名删除的问题
一、目录栈的移除操作
- 用
popd实现类似需求:如果只是想移除栈顶目录,直接敲popd,它会同时切换到新的栈顶目录;要是只想移除指定位置的目录不切换路径,用popd +N(N是目录在栈里的索引,从0开始计数,比如popd +1就是移除栈里的第二个目录)。 - 精准删除指定目录:如果要删掉栈里某个特定路径的目录,可以直接修改目录栈对应的环境变量。比如在zsh里执行
DIRSTACK=("${(@)DIRSTACK:#/你要删的目录路径}"),bash里则用DIRSTACK=(${DIRSTACK[@]/\/你要删的目录路径/}),执行后目标目录就会从栈里消失。 - 部分环境里确实存在
leave或unenter命令,如果你的shell环境支持,直接用它们就能对应enter完成移除,但如果没有,上面的方法完全可以替代。
二、删除当前会话的别名
直接用unalias命令就行,比如你之前设了alias grep='grep --color=auto',要删除这个别名就敲unalias grep,执行后当前会话里这个别名立刻失效,不用重启shell。
内容的提问来源于stack exchange,提问作者Micah Elliott
相关产品推荐
相关产品推荐

