0

我想知道,是否可以访问“ls”除了名称之外还通过ID返回的元素。我正在使用 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,这样我就知道我正在访问哪个元素。

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

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

4

1 回答 1

1

使用 ZSH 'globbing' 或 'filename generation' 功能很容易实现这一点

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

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

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

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

 function cd_modified { cd *(/[$1]) }
于 2012-12-10T14:03:23.993 回答