Поиск файлов с шаблоном и получение последнего

Я хочу найти файл с определенным шаблоном и распечатать последний файл, соответствующий шаблону с полным путем

find ../*.gz -type f -print0 | sort -nr | cut -d: -f2- | head -n 1

Как распечатать полный путь.

По просьбе пользователей ls -l :

 ls -l drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:29 fa1caae85 drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:28 ga1c93eda drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:28 la1cbbh05 drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:08 node_modules drwxrwxr-x 3 xxx xxx 4096 Jun 27 23:08 _tasks 

Все три верхние папки содержат файлы .gz , однако я хочу получить из них последний файл .gz .

  • Сделать `locate` способным искать файлы на внешнем жестком диске
  • Как удалить оставшиеся файлы удаленного пользователя?
  • Как найти и скопировать файлы на основе расширения?
  • Как остановить поиск из нисходящих в найденные каталоги?
  • Скрипт для изменения времени изменения файлов и каталогов рекурсивно
  • diff -r только для определенных типов файлов
  • rsync: как включить файлы с именем, заканчивающимся в определенной строке
  • Удалите 50GB самых старых файлов в busybox, когда используемая емкость достигает 95%
  • 2 Solutions collect form web for “Поиск файлов с шаблоном и получение последнего”

    Вы можете сделать это, используя эту команду,

     find "$(pwd)" -type f -name "*.gz" -printf "%T@ %p\n"| sort -n | cut -d' ' -f 2 | tail -n 1 

    Неортодоксальный подход:

     zsh -c 'echo $PWD/**/*.gz(.om[1])' 

    где

    • () после *.gz означает использовать так называемые квалификаторы glob, то есть:
    • . рассматривать только простые файлы
    • om сортировать по времени модификации
    • [1] принимают только первый элемент

    Obviusly, если вы уже используете zsh, вам не нужно называть его с помощью zsh -c .

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.