2015-02-06 3 views
12

Я ищу способ быстрого доступа к последнему файлу/каталогу в командной строке, предпочтительно в ZSH.Заполните последний использованный файл в текущем каталоге

ls -d *(om[1]) 

Дает мне это, и если я захочу использовать его с помощью команды, например, менее * (om [1])

Это также работает.

Однако утомительно вводить все скобки, и я использую это много - следовательно, я ищу способ создания ярлыка для этой строки.

Я создал функцию в .zshrc-файле

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

, который я могу использовать, как это:

less <$(lf) 
less <`lf` 

, но я считаю, это все еще меньше, чем идеал.

less |lf 

не работает.

Есть ли способ быстрого доступа к последнему файлу без использования «трудно вводимых символов»? В идеале это было бы что-то вроде строк

less LATEST 

Любые идеи?

ответ

14

Вы можете использовать _most_recent_file (^Xm).

_most_recent_file (^ Xm)

Полное имя самого последнего измененного файла, соответствующего шаблона в командной строке (который может быть пустым). Если задан числовой аргумент N, заполните N-й последний измененный файл. Обратите внимание, что завершение, если оно есть, всегда уникально.

- zshcompsys(1) BINDABLE COMMANDS

Таким образом, мы можем получить самый последний файл с набрав CTRL-х - м. Например:

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

И мы могли бы определить некоторые закономерности здесь, так, например:

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

Необходимо иметь некоторый autoload -Uz compinit; compinit в ~/.zshrc хотя.

+1

очень хорошее решение - я не знал об этом. Я бы счел ответы эквивалентными, но Гленн ответил первым, поэтому я приму его ответ. – Gerhard

Смежные вопросы