如何只替换zsh中的最高数字?

时间:2013-04-16 21:12:56

标签: zsh zsh-completion

我有一个包含大学学习资料的文件夹,按学期排序:

$ ls University
semester1 semester2 semester3 semester4

我正在尝试将其中一个命名为目录,并且我希望zsh始终指向以最高编号结尾的目录(因此我不必每学期都更新我的目录快捷方式)。

到目前为止,我发现只有zsh扩展< - >:

$ ls semester<->
semester1 semester2 semester3 semester4

但我找不到从中提取最后一个dirname的方法。

知道我应该怎么做或者我应该改变什么?

1 个答案:

答案 0 :(得分:1)

latestSemester=`ls semester<-> | tail -1`
echo $latestSemester

实际上这也有效

latestSemester=`ls semester<->([-1])`

编辑:修正了第二行,其第一个版本错过了括号。

来自zsh手册

[beg[,end]]
    specifies which of the matched filenames should be included in the returned list. The
    syntax is the same as for array subscripts. beg and the optional end may be mathemat-
    ical expressions. As in parameter subscripting they may  be  negative  to  make  them
    count  from the last match backward. E.g.: ‘*(-OL[1,3])’ gives a list of the names of
    the three largest files.