Команда find: широкие возможности для поиска файлов в Linux
Главная » Linux» Команда find: широкие возможности для поиска файлов в Linux
В Linux есть очень мощная и полезная команда для поиска файлов — команда find. Она обладает большим количеством возможностей для поиска файлов, однако, иногда вызывает сложности у новичков во многом из-за ее синтаксиса.
Простой пример использования команды find
Для начала рассмотрим простой пример использования команды find для поиска на компьютере файлов с именем config. Мы будем искать файлы config, начиная с корневого каталога /. Для этого вам нужно выполнять команду от имени пользователя root, чтобы иметь достаточно прав доступа, иначе получите сообщения «Permission denied». Итак, выполним команду:
find / -name config -print
Команда означает следующее: искать файлы с именем config (-name config), начиная с каталога / (первый параметр команды find) и выводить имена файлов на экран (аргумент -print). Отмечу, что поиск рекурсивный, то есть при поиске просматриваются все вложенные директории. Как видите все просто. Теперь рассмотрим синтаксис команды и перейдем к обзору ее основных аргументов.
Синтаксис команды find
Общий синтаксис команды find, который вы можете найти в справочном руководстве, может показаться не совсем простым, поэтому я приведу более удобный для восприятия:
find [путь] [опции] [критерии поиска] [действия над файлами]
Путь
В качестве пути для поиска можно использовать как абсолютные, так и относительные пути, а также список путей, разделенных пробелом.
Опции
Опции команды find указываются, начиная с символа «-», за которым следует название опции. Рассмотрим основные опции.
| -depth (или -d) | Поиск в подкаталогах перед поиском в самом каталоге. |
| -L | При поиске следовать по символическим ссылкам. |
| -maxdepths N | При поиске проверять не более чем N вложенных уровней каталогов. |
| -mindepth N | Не проверять вложенные каталоги уровня N и меньше. |
| -mount | Не искать в каталогах других файловых систем. |
Критерии поиска
У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий представляет собой определенное условие проверки, которое возвращает либо true либо false. Это можно сравнить с условиями оператора if в программировании. В процессе обработки очередного файла команда find по очереди проверяет каждый критерий, и если очередной критерий возвращает false, тогда команда find переходит к следующему файлу. Критериев у команды find довольно много, мы рассмотрим только некоторые из них.
| -atime N | Последний раз к файлу обращались N дней назад. |
| -mtime N | Последнее изменение файла было N дней назад. |
| -name шаблон | Имя файла (шаблон имени) без указания пути. Рекомендуется всегда заключать шаблон в кавычки. |
| -newer другой_файл | Файл был изменен позже, чем другой_файл. |
| -size [±]N[cwbkMG] | Размер файла равен N блокам, если указано +N, тогда размер файла больше N, -N — меньше. Символ после N означает размер блока. b — 512 байт, с — байт, w — 2 байта, k — килобайт, M — мегабайт, G — гигабайт. |
| -type C | Файл типа C. Наиболее часто используемые значения для С: d — каталог, f — файл. |
| -user Имя_пользователя | Файл принадлежит пользователю с именем Имя_пользователя. |
Примеры использования команды find с использованием критериев
find . -type f -name "~*" -print
Найти в текущем каталоге обычные файлы (не каталоги), имя которых начинается с символа «~».
find . -newer file.bak -type f -print
Найти в текущем каталоге файлы, измененные позже, чем файл file.bak.
Операторы
Критерии можно объединять, используя операторы. Ниже приведены операторы в порядке убывания их приоритета.
| Короткая форма оператора | Длинная форма | Описание |
|---|---|---|
| ! критерий | -not | Отрицание (возвращает true, если критерий false) |
| критерий1-a критерий2 | -and | Оператор И (true, если критерий1 и критерий2 true) |
| критерий1-o кр |
Еще о Команда find: широкие возможности для поиска файлов в Linux
Несколько полезных команд Linux
Хочу рассказать о некоторых командах Linux, которыми иногда приходится пользоваться для решения небольших задач. Как сделать файл исполняемым chmod +x myfile Данная команда сделает
Немного о командах Linux
В данной статье я хочу немного рассказать об основных командах Linux. Основные команды - это те команды, без которых очень
Основы работы в командной строке Linux
В настоящее время работать в Linux можно и без использования командной строки. Почти все основные действия можно выполнять используя графические приложения. Но основные команды
Сравнение файлов в Linux (команда diff)
Для сравнения двух или нескольких файлов в Linux есть команда diff. Она может сравнивать как отдельные файлы, так и каталоги. Рассмотрим синтаксис,
ArtMoney SE — программа для взлома компьютерных игр.
ArtMoney SE 7.34 ArtMoney Special Edition (ArtMoney SE) — универсальный редактор (или взломщик) практически любых компьютерных игр. Программа предназначена для редактирования параметров
