在zshell中按ID访问目录的元素

时间:2012-12-04 09:12:41

标签: directory alias zsh

我想知道,是否可以通过ID来访问“ls”返回的元素。我正在使用z-shell。 我在想的是类似下面的内容

>> ls_modified
A/  B/  C/  d.txt
1  2  3  4

所以我可以通过

在下一步中访问它们
>> cd_modified 2 

>> vim_modified 4

我已经找到一些解决方法来访问由“ls -ltr”打印的最后一个元素,这是以下别名:

cdlast='cd *(.om[1])'
vlast='vim *(.om[1])'

由于我从未真正使用过我的.zshrc,我不确定是否可以简单地调整上面的代码来使用Integer作为输入。此外,我真的希望看到为每个元素列出的ID,以便我知道我正在访问哪个。

如果有任何方法可以实现这一点,我将非常感激。

另外,我真的不知道要使用哪些标签。

1 个答案:

答案 0 :(得分:1)

使用ZSH' globbing'很容易实现这一目标。或者'文件名生成'特征

  • *:当前工作目录中的所有文件和目录
  • *(.):只有常规文件,而不是目录
  • *(.om):仅按修改日期排序的常规文件
  • *(.om[2]):第二个最近修改的常规文件

有关完整信息,请参阅http://zsh.sourceforge.net/Doc/Release/Expansion.html#Filename-Generation

如果要访问第二个目录,按名称排序(默认值),请使用*(/[2])

要将索引作为参数传入,可以使用shell函数。

 function cd_modified { cd *(/[$1]) }