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

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

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

  • Является ли slash (/) частью имени корневого каталога Linux?
  • Почему `find` любит` stat` или `fstat` столько?
  • Когда следует использовать конечную косую черту в каталоге?
  • Сравнение двух команд поиска
  • Как подсчитать количество строк для определенного типа файла в сжатом файле tgz?
  • Переименование файлов в лексикографическом порядке с помощью числового шаблона, который последовательно увеличивается с фиксированным заполнением
  • Как распечатать полный путь.

    По просьбе пользователей 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 .

  • команда find иногда приводит к тому, что файлы, не соответствующие совпадению
  • Использование basename для расширения расширений файла и поиска файлов с тем же именем
  • Не удалось объединить файлы с помощью find ./subdir/* -print0 | сортировать | xargs -0 cat> merge.txt
  • найти с несколькими вариантами -exec; redirecting &> / dev / null для одной команды exec отправляет процесс в фоновый режим
  • Найти файлы не в белом списке регулярных выражений
  • Точки в пути
  • 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 .

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