Tcl:cd回到上一个目录

时间:2013-02-04 09:46:57

标签: tcl

在Unix上,cd -可以切换回上一个目录。我想知道在tcl解释器中是否有类似命令可以做同样的事情?

2 个答案:

答案 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为目录堆栈提供pushdpopd命令,但它不会修改cd命令以放置任何内容。它可以通过命令包装和重命名来完成,但我不推荐它用于可以在脚本中使用的东西(至少,不要覆盖cd -的语义)。