Как упорядочить файлы по дате в списке пополнения вкладки


9
$ 7z l ~ / Загрузки /Tab

Как сделать итоговый список отсортированным по дате, а не по имени?

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


4
Легко в зш . Я не знаю, возможно ли это в bash.
Жиль "ТАК - перестать быть злым"

Вы хотите просто просмотреть файлы, перечисленные по дате, или хотите как-то добавить их в архив в порядке даты?
Тердон

В каталоге «Загрузки» много разных файлов, и я хочу получить доступ к недавно загруженному файлу (возможно, распаковать его, переместить куда-нибудь и т. Д.).
Ви.

Ответы:


2

Я не думаю, что bashможет сделать это, так что вы можете попробовать zsh. Я не пользователь zsh, но я думаю, что эта конфигурация должна работать:

autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse

( reverseздесь, чтобы увидеть новейшие файлы в конце списка, потому что верхняя часть может быть не видна на экране.)


0

Иногда мне нужно найти самый последний загруженный файл в моем каталоге загрузок, но может не знать точное имя файла. Вот как я это делаю.

ls -rt ~/Downloads

ls -tперечисляет файлы по времени, а не по названию, причем самые последние отображаются первыми. Поскольку в моем каталоге «Downloads» содержится так много файлов, я не хочу прокручивать его в верхнюю часть списка, чтобы увидеть самые последние. ls -rtменяет порядок списка, отображая самый последний файл внизу списка.

Оттуда вы можете сделать то, что вам нужно, довольно легко. Например:

unzip $(ls -rt ~/Downloads | tail -n1)

или

mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*

Ваш оригинальный вопрос можно сделать так:

7z l $(ls -rt ~/Downloads | tail -n1)

Я понимаю, что это не соответствует методу завершения Tab, но он может подойти для ваших нужд.


Не экономит печатать. На самом деле у меня уже есть сценарий rlс ls -lhtc "$@" | head -n $Nэтим.
Ви.

Вопрос в том, как интегрировать этот или другой скрипт в <kbd> Tab </ kbd>, чтобы мыслить без проблем.
Ви.

Ваш фрагмент также имеет тенденцию разбиваться на некоторые хитрые имена файлов, как это типично для загружаемых файлов.
Ви.

0

Я сделаю следующие шаги для этого

  1. First I will find the files and their timestamps
  2. Sort them reversely
  3. Take top N
  4. Get the filenames
  5. Zip it or do whatever u like

И сценарий выглядит так (может быть сложным)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l

У меня уже есть подобный скрипт с именем rl(недавний список). Но мне нужно явно назвать это, а затем скопировать и вставить. Я хочу, чтобы он был более интегрирован с завершением вкладки.
Ви.

-1

В bash вы можете получить что-то близкое, используя, например,

7z l ~/Downloads/Alt+n

Где bindсопоставлено Alt+nс функцией, которая переписывает READLINE_LINEпеременную.

Чтобы приблизить завершение табуляции, я делаю это с аргументом-парсинг-perl-kludge и fzfдля представления меню.

https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.