[[ find - поиск файлов ]]

find - поиск файлов

Поиск файлов по имени

find /var/www/ -name "file.conf"
find /var/www/ -name "*.conf"

Поиск без учёта регистра:

find /var/www/ -iname file.conf

Поиск по размеру файлов

Файлы больше 10Mb

find /home/user -size +10M

Файлы меньше 1Gb

find /home/user -size -1G

Поиск по маске прав

find ./ -perm 700

Поиск по дате

Файлы созданные или изменённые в течении последних 5 дней

find /home/user -type f -mtime -5

Файлы созданные или изменённые в течении последних 5 минут

find /home/user -type f -mmin -5

Найти файлы созданные или изменённые старше 30 дней (ака поиск устаревших файлов):

find /home/user -type f -mtime +30

Удалить файлы созданные или изменённые старше 30 дней:

find /home/user -type f -mtime +30 -delete  

Время последнего обращения к которым более 5 дней

find /usr/bin -type f -atime +5

Дополнительный возможности использования

Поиск строки в файлах

find ./ -type f -exec grep -i -H "STRING"  {} \;

Найти все файлы php в который встречается строка STRING:

find ./ -type f -name "*.php" -exec grep -i -H "STRING"  {} \;

Так же можно использовать команду grep с опцией -R для поиска файлов по содержимому:

grep "STRING" -R /path/for/find

Замена текста в файлах

find ./ -type f -name "*.conf" -exec sed -i s/OLDTEXT/NEWTEXT/g {} \;

Массовое изменения прав доступа

Установка прав доступа 644 на все файлы в текущей директории и всех поддиректориях:

find ./ -type f -exec chmod 644 {} \;

Установка прав доступа 755 на все папки в текущей директории и всех поддиректориях:

find ./ -type d -exec chmod 755 {} \;

Скобочки {} означают передаваемый аргумент команде выполняющейся в -exec от утилиты find, такой как путь файла

Обсуждение

test, 2016/10/18 14:25

Спасибо!

Aleksey, 2018/07/04 10:34, 2018/07/04 10:38

Исключить из поиска саму директорию

find /var/log/journal -mindepth 1 -type d
find /var/log/journal -mindepth 1 -type d -empty -delete 2>/dev/null
Aleksey, 2019/12/09 11:07, 2019/12/10 11:53
find -maxdepth 1 -type d -not -name '.' -exec basename {} \;

или

find . -maxdepth 1 -mindepth 1 -type d -exec basename {} \;
smaheouoy, 2020/02/15 09:50

Спасибо, давно искал

Melvinroall, 2020/12/11 14:34

Годнота спасибо

Ваш комментарий. Вики-синтаксис разрешён:
50 +7 = 
 
tools/console/find.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki