Поиск файлов по маске linux. Поиск в Linux с помощью find. Примеры использования find
Возможно, вам известна такая проблема как: Не можете найти файл, а он где то в компьютере. Тогда удобна команда find.
Вы спросите: Как ею пользоваться? К этой программе дается огромная man-страница, мы рассмотрим некоторые обычные случаи.
Можно начать с самого простого: Если вы знаете имя файла, то вы сможете легко его найти! Вам всего лишь нужно набрать команду find и указать конкретное имя файла!
Linux поиск файлов по имени
Вот эта та самая простая команда:Find -name love
Если существует файл с именем «love» то команда find выявит местоположение файла или нескольких файлов таким образом:
Jzb@kodos:~$ find -name love
./projects/love
jzb@kodos:~$
Например, будем искать все файлы в формате mp3 и сделаем полный список в файле:
File /home/artix -iname ".mp3" > ./list.txt
Поиск файлов по части названия
Далее найдем файлы в формате txtx, не просто файлы, а такие текстовые файлы, в которых присутствует слово «LEON»:File /home/artix -iname ".txt" -exec grep -H "LEON" "{}" \; > ./list.txt
Замечательно, у нас уже получается осуществлять поиск файлов Linux со словом
«LEON». Таким же образом можно удалить лишнее, причем в фоне, чтобы можно было дальше работать:
File /home/artix -iname ".bak" -exec rm "{}" \; &
Этим мы облегчаем себе жизнь. Эти наипростейшие вещи, а в них так много полезного.
Поиск файлов по дате Linux
Find ./ -mmin -10 #дата модификации менее 10 минут find ./ -mtime +1 #дата модификации более суток find ./ -type f -atime +10 # время обращения более 10 дней find ./ -type f -amin -10 #дата модификации последние 10 минут
Поиск текста в файлах Linux
Часто бывает что требуется провести поиск текста в файлах Linux. Приведу 2 примера поиска файлов: (linux, freebsd) нужно фрагмента текста в файлах: # find /var/named/ -type f -exec grep "MX" {} \;
serversnetwork.info. 14400 IN MX 10 mail
и еще один:
# grep -rl "MX" /var/named/ /var/named/serversnetwork.info.db
Поиск файлов по размеру
Временами для поиска файлов Linux можно пользоваться другими командами. Например, вы заметили как на вашем компьютере, в какой-то раздел стал увеличиваться в объеме. Чтобы найти с каким файлом это связанно, или какая папка переполняется можно использовать такую команду:Find -size 95k.
Так мы найдем файлы размером 95k. Но этой опцией пользуются очень редко. Больше используют команды, с помощью которых можно найти файл больше или меньше указанного размера. К примеру, опция:
Find -size +150k
Должна показать файлы которые больше 150k. А опция
Find -size -94k
то, что меньше 94K.
Функция -size производит поиск файлов указанного размера и имеет вот этот вид при выполнении:
$ find . -size 3500k -print
Эта опция осуществит в Linux поиск файлов и выявит на экране
те, у которых размер 3500 килобайт, которые находятся в этой папке. Если вам потребуется отыскать файлы, в которых размер меньше 250 килобайт, то команда будет выглядеть следующей:
$ find . -size -200k -print
Если требуется отыскать файлы в которых размер больше 555 мегабайт, то мы будем использовать опцию:
$ find / -size +555M -print
Пожалуй, на этом я закончу писать свою статью.
Теперь вы возможно сможете сами искать файлы, осуществлять поиск текста в файлах Linux, искать файлы по дате!
Всем спасибо, пока!
Необходимость поиска файлов может возникнуть практически в каждой операционной системе, которая позволяет работать с файловой системой. Классическим примером для нас послужит операционная система Linux, которую мы будем использовать в консольном режиме. Давайте рассмотрим возможности поиска файлов в системе посредством консоли. Для поиска файлов в системе Linux есть команда find, которая позволяет производить довольно гибкий поиск, позволяя задавать дополнительные критерии поиска. Рассмотрим возможности данной команды подробнее.
Синтаксис команды find:
Find путь –опции
В качестве пути указывается директория, в которой необходимо производить поиск. К примеру, это могут быть значения такого вида:
. – текущий каталог
/ — корневой каталог
~ — домашний каталог
После указания пути так указываются опции поиска. С виду всё запутано, но на самом деле сложностей тут нет.
Основные опции:
-name
- поиск по имени, задается шаблон поиска;
-user
- поиск файлов принадлежащих конкретному пользователю;
-group
- поиск файлов принадлежащих конкретной группе;
-perm
- поиск файлов по режиму доступа;
-type
- поиск файлов по типу, список типов:
- b - специальный блочный файл;
- d - каталог;
- c - специальный символьный файл;
- f - обычный файл;
- l - символическая ссылка;
- p - именованный канал;
- s - сокет.
-size n
- поиск файлов с размером n единиц;
-mtime -n +n
- поиск файлов по дате изменения, менее (-) или более (+) дней назад.
Попробуем произвести поиск файлов, имитируя различные ситуации.
Найдем файлы на съемном устройстве, подключенном к USB, и предварительно смонтированном в системе.
Поиск файлов по расширению:
$ find /mnt/usb -name "*.mp3" -print
В результате выполнения данной команды будет произведен поиск в каталоге /mnt/usb
– это каталог, в который смонтировано устройство. Поиск будет произведен по всем файлам (*), имеющим расширение .mp3
.
Маску поиска можно менять довольно гибко, к примеру, можно задать ключевое слово, с которого начинается имя файла, и произвести по нему поиск.
Поиск файлов по начальному ключевому слову:
$ find ~ -name "config*" –print
В результате будет показан список найденных файлов, начинающихся с ключевого слова config
.
Одна из сильных сторон команды это возможность поиска согласно регулярному выражению. Для демонстрации произведем поиск файлов, начинающихся с латинских букв от «a» до «j».
Поиск файлов по шаблону регулярного выражения:
$ find / -name "*" –print
Согласно указанному шаблону будет произведен поиск по всех файлов в системе, начинающихся с букв от «a» до «j».
Каждый более или менее знакомый с системами Linux знает, что режимы доступа к файлам дело весьма важное. Иногда бывает нужно найти файлы, имеющие конкретные заданные права, для этих целей можно воспользоваться поиском с опцией –perm .
Поиск файлов с режимом доступа 755:
$ find . -perm 775 –print
Таким же образом можно произвести более гибкий поиск. Давайте найдем файлы по группе пользователей, для которых есть полный доступ.
Поиск файлов с правами для группы:
$ find . -perm -070 –print
Знак дефиса может быть заменен на знак плюса, это позволит произвести поиск файлов, у которых установлен хотя бы один из заданных битов разрешений, остальные биты при этом будут проигнорированы.
В следующем примере рассмотрим поиск файлов принадлежащих определенному пользователю или группе.
Поиск файлов определенного пользователя:
$ find / -user admin –print
В результате поиска будет найдены файлы принадлежащие пользователю admin .
Поиск файлов, принадлежащие определенной группе пользователей:
$ find / -group bots –print
Будут найдены файлы, которые принадлежат группе пользователей bots . Кроме этого можно производить поиск файлов, владельцами которых являются несуществующие пользователи или группы:
$ find / -nouser –print $ find / -nogroup –print
Возможность поиска определенных типов файлов так же является немаловажным функционалом. К примеру, если есть необходимость найти все символические ссылки в конкретной директории.
Поиск символических ссылок:
$ find /etc -type l –print
Поиск будет произведен в директории /etc, в которой будут отбираться все символические ссылки.
Бывает необходимо просмотреть список вложенных директорий, в каком либо каталоге, для таких задач есть следующая команда.
Просмотр вложенных директорий в каталоге:
$ find /mnt/usb -type d –print
На экран будет показан список директорий присутствующих в каталоге /mnt/usb . Теперь перейдем к следующей опции, это возможность поиска файлов установленного размера.
Поиск файлов по размеру:
$ find . -size 2000k –print
Будет произведен поиск файлов размером 2000 килобайт, размеры можно указывать и в мегабайтах, для этого вместо буковки «k» следует указать букву «M».
В качестве следующего примера мы будем использовать возможность поиска файлов по времени его модификации. Для этих целей мы воспользуемся опцией –mtime .
Поиск файлов, измененных за последние 2 дня:
$ find /var/www/html -mtime +2 –print
Поиск будет производиться в директории /var/www/html , и будут искаться файлы которые изменялись в течении последних 2-х дней. Пожалуй, одна из немаловажных и удобных опций поиска. Так же можно производить поиск по дате модификации с обратным условием. Давайте попробует найти файлы в директории, которые не изменялись в течении 5-ти дней.
Поиск файлов, не изменявшихся в течении 5-ти дней:
$ find /var/www/html -5 –print
На этом пока всё, надеюсь, данные примеры вам помогли разобраться с данной командой. Её удобство представлено наглядно, и знать о её возможностях не будет лишним, особенно если вы собираетесь в дальнейшем работать с системой Linux. Навыки грамотного поиска файлов значительно экономит ваше личное время, а как известно время бесценно. Успехов в труде!
Очень часто требуется срочно найти какой-то файл в файловой системе, но где он вы не имеете ни малейшего понятия. И если GUI утилиты для поиска файла надоели или вообще у вас GUI не установлен или вы принципиально им не пользуетесь, то на помощь придут обширные команды для поиска файлов, папок и частей файла в linux.
Поиск файла по имени в базе данных.
С помощью команды locate
можно проводить поиск файла(ов) по части имени файла. Команда сканирует базу данных имен и выдает путь до искомого файла(ов). Мы рекомендуем запускать команду с опцией -i: locate -i
для поиска без учета регистра.
Пример:
subsanek@subsanek-laptop:~$ locate -i .ogg
/home/subsanek/неизвестно - неизвестно/01 - неизвестно 1 - ???.ogg
/usr/local/Zend/ZendStudio-7.1.2/docs/PHPmanual/book.oggvorbis.html
/usr/local/Zend/ZendStudio-7.1.2/docs/PHPmanual/intro.oggvorbis.html
/usr/share/kde4/apps/bball/bounce.ogg
/usr/share/kde4/apps/klettres/en_GB/alpha/a.ogg
/usr/share/kde4/apps/klettres/en_GB/alpha/b.ogg
/usr/share/kde4/apps/klettres/en_GB/alpha/c.ogg
(усечено)
-вызов команды нашел все файлы в системе с расширение ogg.
locate ищет файлы очень быстро, но это лишь просмотр списка имен из базы данных и если файл создан недавно, то велика вероятность его не найти.
Обновление базы данных.
Обновить базу данных команды locate можно командой (от суперпользователя):
updatedb
Удобочитаемый вывод.
Часто команда locate может дать многотысячный результат который просто промелькнет перед экраном и ничего не даст для ваших глаз, чтобы избежать этого можно перенаправить результат вывода в контейнер:
locate -i .ogg | less
Также можно задать сколько необходимо вывести результатов опцией -n:
locate -i .ogg -n 10
-выведет первые 10 результатов.
Поиск файлов с реальном сканированием.
Команда find выполняет просмотр файловой системы для поиска файла, что делает этот инструмент медленным, но эффективным.
Для поиска по имени обязательно нужно указывать ключ -name
Пример:
find -name filename.txt
По умолчанию find производит поиск рекурсивно в текущем каталоге.
Поиск текста по фрагменту из текста.
Легендарная команда grep может служить практически для любых целей. Я ее люблю применять не только для поиска нужных файлов в каталоге исходного текста. С помощью grep также можно задавать поиск по регулярным выражениям.
Прототип команды:
grep "шаблон поиска" файл_в_котором_искать
Пример:
grep -R "text" /
-команда будет рекурсивно искать во всех текстовых файлах системы слово text.
Grep имеет внушительное количество опций которые могут довольно часто понадобиться:
subsanek@subsanek-laptop:~$ grep --help
Использование: grep [КЛЮЧ]... ШАБЛОН [ФАЙЛ]...
Поиск ШАБЛОНА в каждом ФАЙЛЕ или в стандартном вводе.
По умолчанию, ШАБЛОН представляет собой простое регулярное выражение (BRE).
Пример: grep -i "hello world" menu.h main.c
Выбор типа регулярного выражения и его интерпретация:
-E, --extended-regexp ШАБЛОН - расширенное регулярное выражение (ERE)
-F, --fixed-regexp ШАБЛОН - строки фиксированной длины, разделённые
символом новой строки
-G, --basic-regexp ШАБЛОН - простое регулярное выражение (BRE)
-P, --perl-regexp ШАБЛОН - регулярное выражения языка Perl
-e, --regexp=ШАБЛОН использовать ШАБЛОН для поиска
-f, --file=ФАЙЛ брать ШАБЛОН из ФАЙЛа
-i, --ignore-case игнорировать различие регистра
-w, --word-regexp ШАБЛОН должен подходить ко всем словам
-x, --line-regexp ШАБЛОН должен подходить ко всей строке
-z, --null-data строки разделяются байтом с нулевым значением, а не
символом конца строки
Дополнительно:
-s, --no-messages подавлять сообщения об ошибках
-v, --revert-match выбирать не подходящие строки
-V, --version вывести информацию о версии и выйти
--help показать помощь и выйти
--mmap использовать отображение в память (mmap) по возможности
Управление выводом:
-m, --max-count=ЧИСЛО остановиться после указанного ЧИСЛА совпадений
-b, --byte-offset печатать вместе с выходными строками смещение в
байтах
-n, --line-number печатать номер строки вместе с выходными строками
--line-buffered сбрасывать буфер после каждой строки
-H, --with-filename печатать имя файла для каждого совпадения
-h, --no-filename не начинать вывод с имени файла
--label=МЕТКА выводить МЕТКУ в качестве имени файла для
стандартного ввода
-o, --only-matching показывать только часть строки, совпадающей с ШАБЛОНОМ
-q, --quiet, --silent подавить весь обычный вывод
--binary-files=ТИП считать, что двоичный файл ТИПА:
binary, text или without-match.
-a, --text то же что и --binary-files=text
-I то же, что и --binary-files=without-match
-d, --directories=ДЕЙСТВ как обрабатывать каталоги
ДЕЙСТВИЕ может быть read (читать),
recurse (рекурсивно), или skip (пропускать).
-D, --devices=ДЕЙСТВ как обрабатывать устройства, FIFO и сокеты
ДЕЙСТВИЕ может быть "read" или "skip"
-R, -r, --recursive то же, что и --directories=recurse
--include=Ф_ШАБЛОН обработать только файлы, подпадающие под Ф_ШАБЛОН
--exclude=Ф_ШАБЛОН пропустить файлы и каталоги,
подпадающие под Ф_ШАБЛОН
--exclude-from=ФАЙЛ пропустить файлы, подпадающие под шаблон
файлов из ФАЙЛА
--exclude-dir=ШАБЛОН каталоги, подпадающие под ШАБЛОН,
будут пропущены
-L, --files-without-match печатать только имена ФАЙЛОВ без совпадений
-l, --files-with-matches печатать только имена ФАЙЛОВ с совпадениями
-c, --count печатать только количество совпадающих
строк на ФАЙЛ
-T, --initial-tab выравнивать табуляцией (если нужно)
-Z, --null печатать байт 0 после имени ФАЙЛА
Управление контекстом:
-B, --before-context=ЧИС печатать ЧИСЛО строк предшествующего контекста
-A, --after-context=ЧИС печатать ЧИСЛО строк последующего контекста
-C, --context[=ЧИС] печатать ЧИСЛО строк контекста,
--color[=КОГДА],
--colour[=КОГДА] использовать маркеры для различия совпадающих
строк; КОГДА может быть always (всегда),
never (никогда), или auto (автоматически)
--color, --colour использовать маркеры для различия совпадающих строк
-U, --binary не удалять символы CR в конце строки (MSDOS)
-u, --unix-byte-offsets выдавать смещение, как-будто нет CR-ов (MSDOS)
Вместо egrep предполагается запуск grep -E. Вместо fgrep предполагается grep -F.
Запуск под именами egrep или fgrep лучше не выполнять.
Когда не задан ФАЙЛ, или когда ФАЙЛ это -, то читается стандартный ввод.
Если указано меньше, чем два файла, то предполагает -h. При нахождении
совпадений кодом завершения программы будет 0, и 1, если нет.При возникновении
ошибок, или если не указан параметр -q, кодом завершения будет 2.
Несомненно, при работе с Linux, иногда возникает необходимость поиска файлов с определенными характеристиками. Этими характеристиками могут быть размер или тип файла, права доступа и другое.
Наличие в Linux команды find , во многом помогает справиться с поиском файлов по различным критериям.
Сегодня мы разберем поиск файлов в Linux и приведем основные опции команды find , которые вы сможете применить в своей работе.
Формат команды find :
find путь -опции
где путь - это каталог, в котором произвести поиск. В качестве пути можно указывать следующие значения:
. - поиск в текущем каталоге;
/ - поиск от корневого каталога;
~ - поиск в домашнем каталоге.
Что до опций, то тут гораздо бОльший список, с которым крайне необходимо внимательно ознакомиться (это в будущем очень поможет!). Итак, основные опции команды find :
-name - поиск файлов по имени, используя приведенный шаблон;
-user - поиск файлов, принадлежащих указанному пользователю;
-group - поиск файлов, принадлежащих указанной группе;
-perm - поиск файлов с указанным режимом доступа;
-type - поиск файлов определенного типа. Типов тоже достаточно:
- b - специальный блочный файл;
- d - каталог;
- c - специальный символьный файл;
- f - обычный файл;
- l - символическая ссылка;
- p - именованный канал;
- s - сокет.
-mtime -n +n - поиск файлов, содержание которых изменялось менее чем (-) или более чем (+) дней назад.
Рассмотрим некоторые примеры применения команды find :
Наиболее часто применяемой опцией является опция -name , которая производит поиск файлов по имени.
Примеры с опцией -name :
$ find /mnt/usb -name "*.mp3" -print
произведет поиск всех файлов (об этом свидетельствует знак *), имеющих расширение.mp3 на USB-устройстве, смонтированном в каталог /mnt/usb.
$ find ~ -name "test*" -print
выведет на экран список файлов домашнего каталога, начинающихся на test.
Если вам надо найти файлы, начинающиеся с определенных букв (к примеру, от a до j), то здесь будет удобно применить регулярные выражения, которые крайне удобны в работе:
$ find / -name "*" -print
Вышеуказанная команда позволит отыскать все файлы в системе, начинающиеся с букв от a до j.
Поиск файлов с определенными режимами доступа
Если потребуется найти файлы, имеющие определенные режимы доступа, вам поможет опция -perm , которая легко в этом поможет.
К примеру, выполним поиск файлов с режимом доступа 775 (владелец и группа имеют полные права и ограничение на запись имеют остальные пользователи), находящихся в текущем каталоге:
$ find . -perm 775 -print
Выполняя поиск при помощи find с опцией -perm можно использовать и другой способ - можно перед значением режима поставить дефис и тогда будет произведен поиск файлов, для которых установлены все указанные биты разрешений. Причем, остальные биты в этом случае игнорируются.
К примеру, найдем файлы, к которым пользователи группы имеют полный доступ:
$ find . -perm -070 -print
Вместо знака дефиса, можно указать знак плюса. В этом случае будет произведен поиск файлов, у которых установлен хотя бы один из указанных битов разрешений. Остальные биты при этом игнорируются.
Поиск файлов определенного пользователя или группы
Поиск файлов какого-либо определенного пользователя крайне прост в своей реализации. Для этого достаточно выполнить команду:
$ find / -user admin -print
Вышеуказанная команда произведет поиск файлов в системе, принадлежащих пользователю admin.
Для того, чтобы найти файлы, принадлежащие определенной группе (к примеру managers), выполним команду:
$ find / -group managers -print
Для поиска файлов несуществующих пользователей или групп можно воспользоваться опциями -nouser и -nogroup :
$ find / -nouser -print
$ find / -nogroup -print
Поиск файлов определенного типа
Одной из удобных возможностей команды find , является возможность поиска файлов определенного типа. Рассмотрим варианты использования опции -type :
Поиск символических ссылок в каталоге /etc:
$ find /etc -type l -print
Вывод на экран списка каталогов, присутствующих в каталоге /mnt/raid
$ find /mnt/raid -type d -print
Поиск файлов определенного размера
Опция -size позволяет произвести поиск файлов определенного размера и имеет следующий вид при выполнении:
$ find . -size 2000k -print
Вышеуказанная команда отыщет и отобразит на экране файлы размером 2 мегабайта, находящийся в текущем каталоге. Если, к примеру, необходимо найти файлы размером менее 500 килобайт, то вид команды будет следующий:
$ find . -size -500k -print
Если нужно найти файлы размером более 600 мегабайт, то применим команду:
$ find / -size +600M -print
Поиск файлов с использованием опции -mtime
Опция -mtime позволит вам найти файлы, изменявшиеся в какой-то срок времени.
К примеру, у нас встала задача поиска файлов, находящихся в каталоге /mnt/raid/upload , и изменявшихся за последние 5 дней. В этом нам поможет команда:
$ find /mnt/raid/upload -mtime -5 -print
Если нам необходимо обратное, к примеру, отыскать файлы, которые не изменялись неделю, применим команду:
$ find /mnt/raid/upload -7 -print
Команда find является крайне удобным инструментом для поиска файлов и может использоваться также и для поиска файлов на дисках NFS (сетевых файловых системах), но в этом случае необходимо учесть, что времени на поиск чего-либо на NFS уйдет гораздо больше, чем на локальных дисках.
В этой статье мы рассмотрели лишь основные опции команды find, которые помогут вам в вашей работе. Используйте то, что удобно и не переживайте по пустякам!
В Linux есть очень мощная и полезная команда для поиска файлов — команда find
. Она обладает большим количеством возможностей для поиска файлов, однако, иногда вызывает сложности у новичков во многом из-за ее синтаксиса.
Простой пример использования команды find
Для начала рассмотрим простой пример использования команды find для поиска на компьютере файлов с именем config . Мы будем искать файлы config , начиная с корневого каталога / . Для этого вам нужно выполнять команду от имени пользователя root , чтобы иметь достаточно прав доступа, иначе получите сообщения «Permission denied». Итак, выполним команду:
Find / -name config -print
Команда означает следующее: искать файлы с именем config (-name config), начиная с каталога / (первый параметр команды find) и выводить имена файлов на экран (аргумент -print). Отмечу, что поиск рекурсивный, то есть при поиске просматриваются все вложенные директории. Как видите все просто. Теперь рассмотрим синтаксис команды и перейдем к обзору ее основных аргументов.
Синтаксис команды find
Общий синтаксис команды find , который вы можете найти в справочном руководстве, может показаться не совсем простым, поэтому я приведу более удобный для восприятия:
find [путь] [опции] [критерии поиска] [действия над файлами]
Путь
В качестве пути для поиска можно использовать как абсолютные, так и относительные пути, а также список путей, разделенных пробелом.
Опции
Опции команды find указываются, начиная с символа «-», за которым следует название опции. Рассмотрим основные опции.
Критерии поиска
У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий представляет собой определенное условие проверки, которое возвращает либо true либо false . Это можно сравнить с условиями оператора if в программировании. В процессе обработки очередного файла команда find по очереди проверяет каждый критерий, и если очередной критерий возвращает false , тогда команда find переходит к следующему файлу. Критериев у команды find довольно много, мы рассмотрим только некоторые из них.
-atime N | Последний раз к файлу обращались N дней назад. |
-mtime N | Последнее изменение файла было N дней назад. |
-name шаблон | Имя файла (шаблон имени) без указания пути. Рекомендуется всегда заключать шаблон в кавычки. |
-newer другой_файл | Файл был изменен позже, чем другой_файл. |
-size [±] N | Размер файла равен N блокам, если указано +N , тогда размер файла больше N , -N — меньше. Символ после N означает размер блока. b — 512 байт, с — байт, w — 2 байта, k — килобайт, M — мегабайт, G — гигабайт. |
-type C | Файл типа C . Наиболее часто используемые значения для С: d — каталог, f — файл. |
-user Имя_пользователя | Файл принадлежит пользователю с именем Имя_пользователя. |
Примеры использования команды find с использованием критериев
Найти в текущем каталоге обычные файлы (не каталоги), имя которых начинается с символа «~».
Find . -type f -name "~*" -print
Найти в текущем каталоге файлы, измененные позже, чем файл file.bak .
Find . -newer file.bak -type f -print
Операторы
Критерии можно объединять, используя операторы. Ниже приведены операторы в порядке убывания их приоритета.
В общем случае при использовании операторов критерии проверяются в порядке их приоритета. Изменить порядок можно с помощью скобок. Скобки нужно выделять с помощью обратного слеша.
Примеры использования команды find с использованием операторов
Найти в текущем каталоге файлы, начинающиеся с символа «~» или c «temp» и являющиеся именно обычными файлами (-type f), а не каталогами.
Find . \(-name "~*" -or -name "temp*" \) -type f -print
Найти в текущем каталоге (не обрабатывая подкаталоги — -maxdeph 1) обычные файлы (-file f) размером больше 600 мегабайт и менее 1 гигабайта (-size) или файлы имя которых заканчивающиется на «.mpeg» (-name).
Find . -maxdepth 1 \(\(-size +600M -and -size -1G \) -or -name "*.mpeg" \) -and -type f
Действия над файлами
Когда выполняется команда find , вы можете выполнять различные действия над найденными файлами. Рассмотрим основные из них.
В выполняемых командах вы можете использовать параметр {} в качестве аргумента, который заменяется путем к текущему файлу.
Примеры использования команды find с использованием действий
Найти в текущем каталоге обычные файлы размером больше 1000 байт и выполнить над ними команду ls -dils (действие ls).
Find . -size +1000c -type f -ls
Найти в текущем каталоге обычные файлы, начинающиеся с символа тильда «~», и для каждого файла выдавать запрос на его удаление (на выполнение команды rm).
Find . -name "~*" -type f -ok rm {} \;
Заключение
В заметке мы рассмотрели очень важную и полезную Linux команду find , которая предоставляет практически неограниченные возможности для поиска файлов по многим критериям и шаблонам. А с использованием команд (действий) вы можете искать файлы и выполнять над ними любые операции.