Примеры команды find: seek and destroy Linux 24.05.2011

Подборка примеров использование команды поиска find под Linux.

Синтаксис команды

find [путь] [опции] [критерии поиска] [действия над файлами]
команда описание
find ~/ -name ".bash*" поиск в домашнем каталоге файлов, имя которых начинается с .bash; ключ -iname - без учета регистра
find ~/ -executable поиск выполняемых файлов для пользователя, который запустил команду find
find ~/ -perm 644 поиск файлов, у которых права равны 644
find ~/ -perm -644 поиск файлов, у которых права установлены в 644 и больше (744, 777, etc.)
find ~/ -group proft поиск файлов/папок, принадлежащих группе proft
find ~/ -mmin n поиск файлов/папок, которые редактировались ровно n минут назад
find ~/ -mmin -10 поиск файлов/папок, которые редактировались меньше 10 минут назад
find ~/ -mtime n поиск файлов/папок, которые редактировались ровно n дней назад
find ~/ -mtime -7 поиск файлов/папок, которые редактировались меньше 7 дней назад
find ~/ -mtime +7 поиск файлов/папок, которые не редактировались последние 7 дней
find ~/ -newer file поиск файлов с датой модификации больше чем у file
find ~/ -nogroup поиск файлов/папок у которых не назначена группа
find ~/ -size +2G поиск файлов, размер которых больше 2 ГБайт; -2G меньше 2 ГБайт; возможные размерности: G - ГБайт, M - МБайт, K - КБайт
find ~/ -type t поиск объектов с типом t, распространенные типы: f - файл, d - директория
find . -empty поиск пустых файлов и директорий
find ~/ -user nata -exec mv {} ~/temp \; поиск файлов, принадлежащих пользователю nata и перемещение их в директорию ~/temp (предполагается, что команда запущена не под пользователем nata)
find . -name "*.pyc" -exec rm {} \; удаление файлов *.pyc в текущей и вложенных директориях
find . -name "*.pyc" -ok rm {} \; удаление файлов *.pyc с подтверждением, Enter - пропуск текущего файла
find ~/ -maxdepth 2 -name ".bash*" ограничить поиск двумя уровнями вглубь от ~/
find ~/projects/ -name "*.py" | xargs grep -l 'TODO' поиск файлов *.py, которые содержать строку TODO
find ~/ -size +600M -and -size -1G поиск файлов, у которых размер больше 600 МБайт и меньше 1 ГБайт
find . -type f -not -name "*.html" -not -name "*.css" поиск файлов, исключая *.html и *.css
find -L . -type l поиск поломанных симлинков в текущей директории и ниже
find . -printf "%f\n" поиск всех файлов и вывод только их имя, без полного пути
find . -regex 'index[1-5].html' поиск с использованием регулярных выражений
find . -name "*.py" | xargs sed -i 's/foo/bar/g' поиск по всем *.py и замена foo на bar
find . -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort сортировка файлов по дате, начиная с текущей директории
diff -y <(ssh user@host find /boot|sort) <(find /boot|sort) сравнение удаленной папки с текущей
ls *.pdf | xargs -I{} pdftotext {} - | grep "foo" поиск "foo" во всех pdf файлах
find ./ -name '*:*' -exec rename 's/:/_/g' {} + найти все файлы с : в имени и заменить на _
sudo find /etc/ -type f -print | wc -l подсчитать количество файлов в директории /etc

И напоследок мастер для составления параметров для команды find - Unix find command helper

Дополнительное чтиво

Цитата
Лучше сгореть, чем угаснуть.
Курт Кобейн
Категории
Архив