最後の英数字ディレクトリとして cd

最後の英数字ディレクトリとして cd

次のディレクトリの内容があります。

ここに画像の説明を入力してください。

ご覧のとおり、ディレクトリ名はタイムスタンプです。通常、最上位ディレクトリの場合は、最新のディレクトリ、つまりタイムスタンプ値が最も大きいディレクトリを開きたいと思います。最後(そうですか?) 。

最後のディレクトリにすばやくCDを移動する良い方法はありますか?オペレーティングシステムによってタイムスタンプでソートされていると仮定できますか?それ以外の場合、ダーティアプローチは最大タイムスタンプ値をコピーして「$ cd 1453775108178」を実行することです。

ベストアンサー1

ファイル名をアルファベット順にリストするlsようなコマンドとワイルドカード。*数字のみで構成されるファイル名の場合、すべてのファイル名の桁数が等しい場合にのみ、数字順に対応します。ファイル名はエポック以降のミリ秒数であるようです。時間が2001-09-09 01:46:40から2286-11-20 17:46:39.999の間のアルファベット順に動作します。

zshから、あなたはそれを使用することができます[-1] グローバル予選最後のゲームをプレイしてください。

cd *([-1])

これはさまざまな方法で改善できます。

  • cd *(/[-1])他の種類のファイルがある場合は、ディレクトリのみが一致していることを確認してください。
  • cd *(-/[-1])また、ディレクトリへのシンボリックリンクも含まれます。
  • cd <->([-1])数字のみで構成された名前のみが一致することを確認してください。
  • cd <->(/n[-1])辞書順ではなく数字順に名前を並べ替えます(たとえば、後ろの代わりに10後ろに並べ替え)。91

zshのもう一つのアプローチは、完成を使用することです。現在の完了設定に応じて、これはやや簡単です。設定するとglob_completeオプション(私はこれをする) そして結ぶreverse-menu-completeキーにShift+と仮定しましょうTab。これは次のコードを使用して実行できます.zshrc

setopt glob_complete
bindkey '\e\t' reverse-menu-complete

cd *Shift次に+を入力すると、最後の一致に置き換えられますTab*

他の殻この良い機能が欠けていますね。小さな機能を作ることができます。

cdlast () {
  set ./*/
  shift "$(($#-1))"
  cd "$1"
}

オプションの行間を使用してください-。ただし、で始まるファイル名に-問題があるため、使用しないことをお勧めします。

おすすめ記事