2015-02-06 9 views
12

Sto cercando un modo per accedere rapidamente all'ultimo file/directory sulla riga di comando, preferibilmente in ZSH.Compilare l'ultimo file utilizzato nella directory corrente

ls -d *(om[1]) 

Mi dà solo questo, e se voglio usarlo con un comando, ad es. less * (om [1])

Anche questo funziona.

Tuttavia, è noioso digitare tutte le parentesi, e io uso questo molto - quindi sto cercando un modo per creare un collegamento per questa stringa.

ho creato una funzione nel .zshrc file

lf(){ 
ls -d *(om[1]) 
} 

, che posso usare in questo modo:

less <$(lf) 
less <`lf` 

, ma trovo questo ancora tutt'altro che ideali.

less |lf 

non funziona.

C'è un modo per accedere rapidamente al file più recente senza utilizzare "caratteri difficili da digitare"? Idealmente, sarebbe semplicemente qualcosa sulla falsariga di

less LATEST 

Qualche idea?

risposta

9

Volete uno zsh global alias

alias -g latest='*(om[1])' 
less latest 
14

È possibile utilizzare il _most_recent_file (^Xm).

_most_recent_file (^ Xm)

Completa il nome del file più recente modificato corrisponde al modello sulla riga di comando (che può essere vuoto). Se viene fornito un argomento numerico N, completare l'ennesimo file modificato più di recente. Notare che il completamento, se esiste, è sempre univoco.

- zshcompsys(1) BINDABLE COMMANDS

Quindi, siamo in grado di ottenere il file più recente con la digitazione CTRL-x - m. Per esempio:

% less ;# typing `CTRL-X m` here, we could get: 
% less newest-file-or-directory 

E potremmo specifichiamo alcuni modelli qui, così per esempio:

% less *.log ;# when I want the newest *.log: 
% less newest.log 

E 'necessario avere un po' autoload -Uz compinit; compinit nel ~/.zshrc però.

+1

molto bella soluzione - non ero a conoscenza di questo. Considererei le risposte equivalenti, ma Glenn ha risposto per prima, quindi accetterò la sua risposta. – Gerhard

Problemi correlati