[решено] Найти последние изменённые файлы

Ответить
Аватара пользователя
hasherfrog

[решено] Найти последние изменённые файлы

Сообщение hasherfrog »

Иногда в большой куче файлов с поддиректориями(!) нужно найти пару файлов, которые были недавно изменены (как правило, самые последние модификации). Например, кто-то копался в /etc/ и что-то там поменял. Что -- непонятно, но нормально работать перестало :] Надо найти что именно изменено, но как бы побыстрее это сделать?..



Нет ни у кого скрипта для таких целей? По идее, скрипт должен собрать все данные об изменениях всех файлов через lstat, и отсортировать sort'ом. Но файлов может быть много, получится долго... Потом, хотелось бы иметь регулируемые параметры типа "выводить только N последних", проверять только файлы определённого вида и т.п. Может, уже утилита есть, типа find, просто я нужного заклинания не знаю?
Аватара пользователя
mar

Re: [решено] Найти последние изменённые файлы

Сообщение mar »

первое, что приходит в голову из готового, это скрипты a-la daily : какой-то из них, помнится, проверяет изменения в существенных файлах
Аватара пользователя
BuGfiX

Re: [решено] Найти последние изменённые файлы

Сообщение BuGfiX »

Команда 'find -mtime x' позволяет искать файлы которые изменялись x+1 сутки назад, возможно это как-то Вам поможет.
Аватара пользователя
hasherfrog

Re: [решено] Найти последние изменённые файлы

Сообщение hasherfrog »

BuGfiX

Спасибо, но... Нет, как раз непонятно, когда были сделаны изменения.



mar, спасибо, я просто думал, может есть что-то уже. Типа ls -ctl но с поддержкой -R

В общем, ладно, я тут набросал на коленке для себя... Думает долго, но работает. Больше мне пока не надо.



Код:

Код: Выделить всё

#!/bin/bash
find ./ -type f -print |
 while read f; do stat --format="%Y %n" ${f}; done |
  sort -r -n |
   while read n f; do ls -al ${f}; done |
    more

update

Хм, видимо, из-за использования more[/i] рвётся труба при долгом разглядывании :]

Но зато я сразу нашёл косяк, который собственно и искал.



Решено.
Ответить

Вернуться в «Программирование в *nix»