find
December 9th, 2008
Вывести все лог-файлы время последнего доступа к которым больше 25 дней:
find /var/log/ -name "*.log" -atime +25d -print
удалить
find /var/log/ -name "*.log" -atime +25d -delete
найти файлы с определенным содержимым
find /home/domains/ -name "*" -exec grep -H "3C696672616D65207" {} \; | awk -F":" '{print $1}'
Найти и заменить во всех файлах определенного типа один текст на другой:
FreeBSD
#!/bin/sh
for i in `find /usr/home/admin -name "*.html" -exec grep -H "first text" {} \; | awk -F":" '{print $1}' | xargs`; do sed -i '' 's/first text/second text/g' $i; done
for i in `find /usr/home/admin -name "*.html" -exec grep -H "first text" {} \; | awk -F":" '{print $1}' | xargs`; do sed -i '' 's/first text/second text/g' $i; done
Linux
#!/bin/sh
for i in `find /usr/home/admin -name "*.html" -exec grep -H "first text" {} \; | awk -F":" '{print $1}' | xargs`; do sed -i 's/first text/second text/g' $i; done
for i in `find /usr/home/admin -name "*.html" -exec grep -H "first text" {} \; | awk -F":" '{print $1}' | xargs`; do sed -i 's/first text/second text/g' $i; done
Найти и заменить определенный файл на другой во всех подпапках:
find /folder-where-search -name "oldfile.name" -exec cp /newfile.name {} \;
Обнулить определенные файлы:
#!/bin/sh
for FILE in `find /home/LOGS/ERRORS -name "*apache" -print 2> /dev/null`
do
echo 1 > $FILE
done
for FILE in `find /home/LOGS/ERRORS -name "*apache" -print 2> /dev/null`
do
echo 1 > $FILE
done
Найти все измененные за день PHP файлы и отправить уведомление:
find /usr/local/www/ -name "*.php" -mtime -1 -print |grep -v cache |mail -s "Modified PHP Files" mail@domain.com >/dev/null 2>&1
Найти и удалить все файлы с размером 0:
find /some/path/ -size 0 -delete

Полезно! Спасибо!