Як замовити файли за датою у списку заповнення вкладки


9
$ 7z l ~ / Завантаження /Tab

Як зробити так, щоб отриманий список був відсортований за датою, а не за назвою?

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


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

Ви хочете просто побачити файли, перелічені за датою, чи хочете якось додати їх до архіву в порядку дати?
terdon

У каталозі "Завантаження" є багато різноманітних файлів, і я хочу отримати доступ до нещодавно завантаженого файлу (можливо, розпакуйте його, можливо, кудись перенесіться тощо).
Ві.

Відповіді:


2

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

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

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


0

Інколи мені потрібно знайти останній завантажений файл у моєму каталозі завантажень, але, можливо, не знаю точного імені файлу. Ось як я це роблю.

ls -rt ~/Downloads

ls -tперераховує файли за часом, а не іменем, причому останній відображається першим. Оскільки мій каталог завантажень містить стільки файлів, я не хочу прокручувати верхню частину списку, щоб побачити останні. ls -rtповертає порядок списку, відображаючи останній файл у нижній частині списку.

Звідти ви можете зробити те, що вам потрібно, досить легко. Наприклад:

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

або

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

Ваше первісне запитання можна зробити так:

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

Я усвідомлюю, що це не дотримується методу заповнення вкладки, але це може відповідати вашим потребам.


Не економить набравши текст. Насправді у мене у Альреді є сценарій 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.