Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games

Изучаем Bash: Работаем с командой find на примере поиска измененных файлов в системе

Доброго времени суток уважаемые читатели! :) Сегодня я хочу уделить внимание теме, которую я уже давно не поднимал - Bash.

Сегодня мы будем говорить о команде, при помощи которой вы можете легко найти все измененные файлы у себя в системе... и имя ее:

find

Find - может находить файлы, поддерживая разные опции при поиске, о которых мы и поговорим в статье...

К примеру давайте найдем все файлы, которые были недавно измены в директории /etc + отсортируем сразу так, чтобы файлы, которые были изменены в последнию очередь, были показаны сверху:

find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

Вывод:

2014-01-20 00:59:36 /etc/resolv.conf
2013-12-12 22:22:57 /etc/ld.so.cache
2013-11-23 14:29:04 /etc/network/run/ifstate
2013-03-12 13:42:29 /etc/shadow
2013-01-10 23:11:14 /etc/mtab
...

Теперь давайте произведем поиск файлов, которые были модифицированы в последние 30 минут в директории /opt + во всех ее поддиректориях:

find /opt -type f -mmin -30

Измененные файлы за последнии 4 дня в директории /opt + поддиректории:

find /opt -type f -mtime -4

А если добавить опцию -depth -2, то поиск будет проходить во всех директориях глубиной до второго уровня. Разумеется, цифру в опции можно менять на любую другую.

Также можно задать и диапазон времени, когда были изменены файлы, к примеру:

find /opt -type f -mtime -4 ! -mtime -2

Будут найдены все измененные файлы, которые были изменены за последнии 4 дня, но не позднее 2 дней.

Стоит отметить, что в наших примерах будут выведены только пути к файлам, если вы хотите вывести более подробную информацию к каждому файлу, используйте также exec:

find /opt -type f -mmin -120 -exec ls -al {} \;

Данная команда выводит все измененные файлы за последние 2 часа в директории /opt + все ее поддиректории + будут выведены атрибуты файлов.

Вот такая вот удобная команда find, конечно для получения дополнительной информации, читаем маны:

man find

Linux_man аватар

Давненько ничего небыло из категории Bash :) буду стараться выкладывать и далее, не зря же есть целый раздел Bash на сайте.

jekson аватар

да, надо бы тоже добавить сюда сложные команды которыми постоянно пользуюсь - а то приходиться каждый раз искать заново

Linux_man аватар

ждем :) и для тебя полезно и для других!