0

「ls」が返す要素に、名前に加えてIDでアクセスできるかどうかを知りたいです。Zシェルを使用しています。私が考えているのは、次のようなものです

>> 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 で実際に作業したことがないので、上記のコードを単純に適応させて整数を入力として使用できるかどうかはわかりません。また、どの要素にアクセスしているかがわかるように、すべての要素の ID がリストされていることを確認したいと考えています。

これを実現する方法があれば、とてもありがたいです。

また、どのタグを使用すればよいかわかりません。

4

1 に答える 1

1

これは、ZSH の「グロビング」または「ファイル名生成」機能を使用して簡単に実現できます。

  • *: 現在の作業ディレクトリ内のすべてのファイルとディレクトリ
  • *(.): ディレクトリではなく、通常のファイルのみ
  • *(.om): 通常のファイルのみ、変更日順に並んでいます
  • *(.om[2]): 2 番目に最近変更された通常のファイル

完全な情報については、 http://zsh.sourceforge.net/Doc/Release/Expansion.html#Filename-Generationを参照してください。

名前順 (デフォルト) の 2 番目のディレクトリにアクセスする場合は、 を使用します*(/[2])

インデックスをパラメーターとして渡すには、シェル関数を使用できます。

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