最後の英数字ディレクトリとして 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"
}

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

答え2

ディレクトリのみを作成した場合は、-を使用して最後のファイル/dirを見つけることができます。

ls -tr1 |tail -1
to cd to it --
cd $(ls -tr1 | tail -1)

ファイルとディレクトリの両方がある場合は、より多くの作業が必要です。

cd $(ls -ltr |grep ^d |tail -1 | awk '{print $9}')

その他のオプション - mtimeルックアップを使用する(フィルタリングするディレクトリを作成するときにウィンドウを知る必要がある)ディレクトリが大きい場合(100,000を超えるファイル)、これらすべてのコマンドを実行するのに長い時間がかかる可能性があるため、最良の方法はファイルを生成するです。最後のディレクトリを含むディレクトリファイルを作成し、それを使用して最新のディレクトリに移動します。

答え3

.bashrcファイルにエイリアスまたは関数を作成できます。たとえば、次のようになります。

alias lcd="cd $( ls -1 | tail -1 )"

または

lcd() { cd $( ls -1 | tail -1 ) ; }

答え4

ディレクトリ作成プロセスを制御できる場合は、常に最新のディレクトリを指す名前付きlatestシンボリックリンクを作成するようにディレクトリを調整できます。

これは、デジタルカメラカードから写真を抽出するスクリプトで行うことであり、私にとっては完璧に動作します。

$ ls -loghd pictures/[12l]*
dr-xr-xr-x  4 4.0K May 24  2012 pictures/1989
dr-xr-xr-x  6 4.0K May 24  2012 pictures/1990
...
dr-xr-xr-x 38 4.0K Dec 15 19:59 pictures/2015
drwxr-xr-x  3 4.0K Jan 10 23:03 pictures/2016
lrwxrwxrwx  1   34 Jan 10 23:03 pictures/latest -> 2016/2016-01-10

関連情報