k sh: Как получить все каталоги журналов, упорядоченные по последним действиям? - PullRequest
0 голосов
/ 09 мая 2020

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

Я начал с чего-то вроде for dir in $(find . -name log -type d); do printf $dir; ls -lcrt $dir | tail -n 1; done

, но это дает беспорядочный результат, который требует дальнейшего анализа. порядок сортировки по дате. Может быть, есть более простой способ?

спасибо

  • обновление: поскольку в каждом каталоге много файлов, первым шагом будет получение самых новых файлов для каждого каталога и итерация по нему . Итак, я построил дубль для l oop, и это сработало.

Ответы [ 2 ]

0 голосов
/ 16 мая 2020

update: поскольку в каждом каталоге много файлов, первым шагом будет получение только самого нового файла для каждого каталога (ls -lh | tail -1; что-то в этом роде) и перебрать его. Поэтому я построил дубль для l oop, который не выиграет ни одного конкурса красоты, но принес мне результаты.

0 голосов
/ 11 мая 2020

Этот метод может не на 100% решить вашу проблему, но его легко использовать.

Предполагая, что за последние 2 дня было не более 99 файлов, тогда

find . -type f -mtime -2 | xargs -n 99 ls -ltr | grep '/log/'

Эта команда найдет все файлы со временем модификации за последние 2 дня, а затем выполнит сортировку ls -ltr и затем отфильтрует каталог / log /.

Надеюсь, это немного поможет.

...