find .
find *
Поиск по части имени
$ find ~/ -name dead*
Замена слов в скриптах
$ find -name '*.php' -exec sed -i -e s/было/стало/g {} \;
Найти и удалить все временные файлы vim'а
$ find ./ -name '*.sw[op]' -delete
Сохранить все *.xml вместе с деревом каталогов в архиве.
$ find ./dir -name "*.xml" -print | zip archive -@
Для того, чтобы рекурсивно поменять права на каталог и вложенные подкаталоги, необходимо выполнить 2 команды:
$ find . -type d -exec chmod 775 "{}" \;
$ find . -type f -exec chmod 664 "{}" \;
Из поиска убрать все скрытые папки и файлы
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
Из поиска убрать все скрытые папки но показывать скрытые файлы в обычных каталогах
find . \( ! -regex '.*/\..*/..*' \) -type f -name "whatever"
Найти файлы, которые не являются видимыми для всех
$ find -type f ! -perm -444
Найти директории не доступные для всех
$ find -type d ! -perm -111
Задать максимальную глубину поиска
$ find . -maxdepth 1
.
./_nix
./python
./vim
./c
./javascript
Искать файлы определённого пользователя
$ find . -user www-data
./tmp/user-13-invite.png
./tmp/user-17-invite.png
./tmp/user-14-invite.png
./tmp/user-16-invite.png
./log/mail
./log/exception
./log/404
Показать файлы которые менялись за последние 10 дней
$ find /usr/bin -type f -mtime -10
Найти все файлы, чьё имя состоит лишь из символов
$ find * -type f -name '[0-9]*'
Найти все скрытые файлы
$ find . -type f -iname ".*"
Для каждого результата поиска задать вопрос: выполнять ли указанную команду
$ mkdir a b c
$ touch {a,b,c}/{1,2,3}
$ find * -type f -ok rm {} \;
< rm ... a/3 > ?
< rm ... a/2 > ? y
< rm ... a/1 > ?
< rm ... b/3 > ?
< rm ... b/2 > ? y
< rm ... b/1 > ?
< rm ... c/3 > ?
< rm ... c/2 > ? y
< rm ... c/1 > ?
$ find * -type f
a/3
a/1
b/3
b/1
c/3
c/1
Удалить все пустые директории
$ find -depth -type d -empty -exec rmdir {} \;
Вывести только файлы из текущего каталога
$ find * -maxdepth 0 -type f
Ищем файлы изменялись в определённом диапазоне времени
$ touch -t yyyymmddHHMM range_start
$ touch -t yyyymmddHHMM range_end
$ find . -type f -newer range_start ! -newer range_end -ls
Найти симлинки
$ find ~/ -type l
// можно сразу посмотреть куда они ведут:
$ find ~/ -type l -exec ls -l {} \;
Найти файлы по определенной маске, содержащие определенный текст. Отображает имя файла, номер строки где найден текст, и саму строку. Все это красиво раскрашивает (если консоль позволяет раскраску)
//Найдем все файлы *.php, содержание строку print_r
$ find . -name "*.php" |\
while read i; do \
cat "$i" | grep -H --label="$i" -n "print_r"; \
done
//Тоже самое - в виде одной строки (для удобства копипасты)
$ find . -name "*.php" | while read i; do cat "$i" | grep -H --label="$i" -n "print_r"; done
Найти файлы *.php и проверить их лексическим анализатором
$ find . -name "*.php" |\
while read i; do \
php -l "$i"; \
done
//Тоже самое - в виде одной строки (для удобства копипасты)
$ find . -name "*.php" | while read i; do php -l $i; done
- 2 - xtips.ru
- 3 - xtips.ru
- 4 - user.su
- 5 - user.su
- 6-7 - www.linuxquestions.org
- 8-9 - www.pixelbeat.org
- 10 - www.linuxguide.it
- 12 - www.linuxguide.it
- 14 - www.cyberciti.biz
- 15 - ru.wikipedia.org
- 16 - nixcraft.com
- 18 - my.galagzee.com
- 19 - blog.rac.me.uk
- 20-21 - blog.dander.ru
Ссылки по теме:
- find.unixpin.com - Генератор команды find