在Unix上,cd -
可以切换回上一个目录。我想知道在tcl解释器中是否有类似命令可以做同样的事情?
答案 0 :(得分:4)
默认情况下,Tcl不维护目录历史记录/堆栈;你必须添加一个。你可以在纯Tcl中做到这一点:
rename cd real_cd
variable old_dir [pwd]
proc cd {directory} {
variable old_dir
if {$directory eq "-"} {
set directory $old_dir
}
set old_dir [pwd]
real_cd $directory
}
这是一个非常简单的版本,仅记住最后一个位置,但其他所有内容都可以以相同的方式构建在顶层。
答案 1 :(得分:3)
不,Tcl中没有目录堆栈,并且以前的目录不会被记住。
TclX为目录堆栈提供pushd
和popd
命令,但它不会修改cd
命令以放置任何内容。它可以通过命令包装和重命名来完成,但我不推荐它用于可以在脚本中使用的东西(至少,不要覆盖cd -
的语义)。