我想知道,是否可以通过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,以便我知道我正在访问哪个。
如果有任何方法可以实现这一点,我将非常感激。
另外,我真的不知道要使用哪些标签。
答案 0 :(得分:1)
使用ZSH' globbing'很容易实现这一目标。或者'文件名生成'特征
*
:当前工作目录中的所有文件和目录*(.)
:只有常规文件,而不是目录*(.om)
:仅按修改日期排序的常规文件*(.om[2])
:第二个最近修改的常规文件有关完整信息,请参阅http://zsh.sourceforge.net/Doc/Release/Expansion.html#Filename-Generation。
如果要访问第二个目录,按名称排序(默认值),请使用*(/[2])
。
要将索引作为参数传入,可以使用shell函数。
function cd_modified { cd *(/[$1]) }