команда find linux примеры

Команда find в Linux – мощный инструмент сисадмина

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.

Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:

Данная команда будет очень полезна системным администраторам для:

Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.

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

Поиск по имени

Следующая команда ищет файл s.txt в текущем каталоге:

В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.

Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:

Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.

Поиск по типу файла

Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:

Например, указав критерий -type d будут перечислены только каталоги:

Поиск по размеру файла

Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.

В данном случае поиск выведет все файлы более 1 Гб (+1G).

Единицы измерения файлов:

Поиск пустых файлов и каталогов

Критерий -empty позволяет найти пустые файлы и каталоги.

Поиск времени изменения

Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:

Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).

Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.

Поиск по времени доступа

Критерий -atime позволяет искать файлы по времени последнего доступа.

Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).

Поиск по имени пользователя

Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:

Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.

Поиск по набору разрешений

Критерий -perm – ищет файлы по определенному набору разрешений.

Поиск файлов с разрешениями 777.

Операторы

Для объединения нескольких критериев в одну команду поиска можно применять операторы:

Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:

Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.

Перед скобками нужно поставить обратный слеш «\».

Действия

К команде find можно добавить действия, которые будут произведены с результатами поиска.

-delete

Полезен, когда необходимо найти и удалить все пустые файлы, например:

Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.

Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.

С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:

Другой пример использования действия -exec:

Заключение

Команду find можно использовать для поиска:

С полученными результатами можно сразу выполнять различные действия, такие как:

Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.

Источник

Команда find в Linux

Очень важно уметь вовремя найти нужную информацию в системе. Конечно, все современные файловые менеджеры предлагают отличные функции поиска, но им не сравнится с поиском в терминале Linux. Он намного эффективнее и гибче обычного поиска, вы можете искать файлы не только по имени, но и по дате добавления, содержимому, а также использовать для поиска регулярные выражения.

Кроме того, с найденными файлами можно сразу же выполнять необходимые действия. В этой статье мы поговорим о поиске с помощью очень мощной команды find Linux, подробно разберем её синтаксис, опции и рассмотрим несколько примеров.

Основная информация о Find

Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.

Команда find имеет такой синтаксис:

find [ папка] [ параметры] критерий шаблон [действие]

Основные параметры команды find

Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.

Критерии

Критериев у команды find в Linux очень много, и мы опять же рассмотрим только основные.

Примеры использования

А теперь давайте рассмотрим примеры find, чтобы вы лучше поняли, как использовать эту утилиту.

1. Поиск всех файлов

Показать все файлы в текущей директории:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Все три команды покажут одинаковый результат. Точка здесь означает текущую папку. В место неё можно указать любую другую.

2. Поиск файлов в определенной папке

Показать все файлы в указанной директории:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Искать файлы по имени в текущей папке:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Поиск по имени в текущей папке:

Не учитывать регистр при поиске по имени:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

3. Ограничение глубины поиска

Поиска файлов по имени в Linux только в этой папке:

4. Инвертирование шаблона

Найти файлы, которые не соответствуют шаблону:

5. Несколько критериев

Поиск командой find в Linux по нескольким критериям, с оператором исключения:

Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:

Эта команда найдёт как php, так и html файлы.

6. Тип файла

По умолчанию find ищет как каталоги, так и файлы. Если вам необходимо найти только каталоги используйте критерий type с параметром d. Например:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Для поиска только файлов необходимо использовать параметр f:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

6. Несколько каталогов

Искать в двух каталогах одновременно:

7. Поиск скрытых файлов

Найти скрытые файлы только в текущей папке. Имена скрытых файлов в Linux начинаются с точки:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

8. Поиск по разрешениям

Найти файлы с определенной маской прав, например, 0664:

Права также можно задавать буквами для u (user) g (group) и o (other). Например, для того чтобы найти все файлы с установленным флагом Suid в каталоге /usr выполните:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Поиск файлов доступных владельцу только для чтения только в каталоге /etc:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Найти только исполняемые файлы:

9. Поиск файлов в группах и пользователях

Найти все файлы, принадлежащие пользователю:

Поиск файлов в Linux принадлежащих группе:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

10. Поиск по дате модификации

Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:

Поиск файлов в Linux открытых N дней назад:

Найти все файлы, модифицированные между 50 и 100 дней назад:

Найти файлы измененные в течении часа:

11. Поиск файлов по размеру

Найти все файлы размером 50 мегабайт:

От пятидесяти до ста мегабайт:

Найти самые маленькие файлы:

12. Поиск пустых файлов и папок

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

13. Действия с найденными файлами

Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, для того чтобы найти все пустые папки и файлы, а затем выполнить ls для получения подробной информации о каждом файле используйте:

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

Удалить все текстовые файлы в tmp

Удалить все файлы больше 100 мегабайт:

Выводы

Вот и подошла к концу эта небольшая статья, в которой была рассмотрена команда find. Как видите, это одна из наиболее важных команд терминала Linux, позволяющая очень легко получить список нужных файлов. Ее желательно знать всем системным администраторам. Если вам нужно искать именно по содержимому файлов, то лучше использовать команду grep.

Источник

Команда find и её опции в примерах

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примерыЭта статья – выдержка из книги “Linux&Unix – программирование в Shell”, Девида Тенсли.

Правки вносил немного в спешке, если замечены опечатки – пишите в комментарии.

Часто в процессе работы возникает необходимость осуществить поиск файлов с определенными характеристиками, такими как права доступа, размер, тип и т.д. Команда find представляет собой универсальный инструмент поиска: она позволяет искать файлы и каталоги, просматривать все каталоги в системе или только текущий каталог.

В этой главе рассматриваются следующие темы, связанные с применением команды find :

• параметры команды find ;

• примеры использования различных опций команды find ;

Возможности команды find обширны, велик и список предлагаемых опций. В настоящей главе описаны наиболее важные из них. Команда find может проводить поиск даже на дисках NFS (Network File System — сетевая файловая система), конечно, при наличии соответствующих разрешений. В подобных случаях команда обычно выполняется в фоновом режиме, поскольку просмотр дерева каталога требует значительных затрат времени. Общий формат команды find таков:

где путевое_имя — это каталог, с которого необходимо начинать поиск. Символ ‘.’ служит для обозначения текущего каталога, символ / — корневого каталога, а символ “

” — записанного в переменной $HOME начального каталога текущего пользователя.

2.1. Опции команды find

-name Поиск файлов, имена которых соответствуют заданному шаблону

-print Запись полных имен найденных файлов в стандартный поток вывода

-perm Поиск файлов, для которых установлен указанный режим доступа

-user Поиск файлов, принадлежащих указанному пользователю

-group Поиск файлов, которые принадлежат данной группе

-nogroup Поиск файлов, принадлежащих несуществующей группе, для которой, иначе говоря, отсутствует запись в файле /etc/groups

-nouser Поиск файлов, принадлежащих несуществующему пользователю, для которого, другими словами, отсутствует запись в файле /etc/passwd

-newer файл Поиск файлов, которые созданы позднее, чем указанный файл

-type Поиск файлов определенного типа, а именно: b — специальный блочный файл; d — каталог; с — специальный символьный файл; p — именованный канал; l — символическая ссылка; s — сокет; f — обычный файл

-size n Поиск файлов, размер которых составляет n единиц; возможны следующие единицы измерения: b— блок размером 512 байт (установка по умолчанию); с — байт; k — килобайт (1024 байта); w — двухбайтовое слово

-depth При поиске файлов сначала просматривается содержимое текущего каталога и лишь затем проверяется запись, соответствующая самому каталогу

-f stype Поиск файлов, которые находятся в файловой системе определенного типа; обычно соответствующие сведения хранятся в файле /etc/fstab, который содержит данные о файловых системах, используемых на локальном компьютере

(обратите внимание на наличие пробела между символами <> и 😉

Чтобы найти все файлы с расширением .txt, находящиеся в текущем каталоге, следует воспользоваться такой командой:

Для нахождения в текущем каталоге всех файлов, в именах которых встречается хотя бы один символ в верхнем регистре, введите следующую команду:

Найти в каталоге /etc файлы, имена которых начинаются с символов “host“, позволяет команда

Поиск в начальном каталоге всех файлов с расширением .txt, а также файлов, имена которых начинаются с точки, производит команда

Опция является обозначением операции логического ИЛИ. В случае ее применения помимо файлов с обычными именами будут найдены файлы, имена которых начинаются с точки.

Если вы хотите получить список всех файлов в системе, не имеющих расширения, выполните представленную ниже команду, но будьте осторожны, так как она может существенно замедлить работу системы:

Ниже показано, как найти все файлы, в именах которых сначала следуют символы нижнего регистра, а за ними — две цифры и расширение .txt (например, ах37.xt):

Если перед значением режима вставить дефис, будет произведен поиск файлов, для которых установлены все указанные биты разрешений, остальные биты при этом игнорируются. Например, следующая команда ищет файлы, к которым другие пользователи имеют полный доступ:

Если же перед значением режима введен знак “плюс”, осуществляется поиск файлов, для которых установлен хотя бы один из указанных битов разрешений, при этом остальные биты игнорируются.

Следующая команда проводит поиск в текущем каталоге, не заходя в подкаталог /bin:

Поиск в каталоге /etc файлов, принадлежащих пользователю uucp, выполняет следующая команда:

Следующая команда ищет во всей системе файлы, принадлежащие несуществующим группам:

Найти все файлы, которые не обновлялись в течение последних пяти дней, позволяет следующая команда:

Ниже приведена команда, выполняющая поиск в каталоге /var/adm файлов, которые обновлялись в течение последних трех дней:

Знак ‘!‘ является оператором логического отрицания. Он означает: найти файлы, которые новее, чем старый_файл, но старее, чем новый_файл.

Предположим, у нас есть два файла, которые обновлялись с интервалом немногим более двух дней:

-rwxr-xr-x 1 root root 92 Apr 18 11:18 age.awk
-rwxrwxr-x 1 root root 1054 Apr 20 19:37 belts.awk

Чтобы получить список всех файлов, но не каталогов, выполните следующую команду:

Ниже приведена команда, которая предназначена для поиска всех символических ссылок в каталоге /etc.

Следующая команда выполняет поиск в каталоге /home/apache файлов, размер которых в точности равен 100 байтам:

Произвести поиск файлов, размер которых превышает 10 блоков (5120 байтов), позволяет приведенная ниже команда:

Вот как могут выглядеть результаты ее работы:

2.1.12. Поиск файлов с последующей архивацией командой cpio

Вот как выполняется запись на магнитную ленту содержимого каталогов /etc, /home и /apps:

Опция команды cpio задает режим записи файлов на ленту. Опция -v (verbose — словесный режим) является указанием команде cpio сообщать о каждом обрабатываемом файле.

Обратите внимание на то, что в именах каталогов отсутствует начальный символ ‘/’. Таким образом задаются относительные путевые имена архивируемых каталогов, что при последующем чтении файлов из архива позволит воссоздавать их в любой части операционной системы, а не только в корневом каталоге.

Чтобы найти файлы, которые не обновлялись в каталоге /logs в течение последних пяти дней, и удалить их, выполните следующую команду:

Для удаления файла введите у, а для предотвращения этого действия — n.

2.1.14. Дополнительные примеры использования команды find

Найти все файлы, для которых установлен бит SUID, позволяет следующая команда:

Чтобы получить список пустых файлов, воспользуйтесь такой командой:

2.2. Команда xargs

Ниже приведен пример, демонстрирующий поиск файлов дампа, имена которых команда echo помещает в файл /tmp/core.log.

В следующем примере в каталоге /apps/audit выполняется поиск всех файлов, к которым другие пользователи имеют полный доступ. Команда chmod удаляет для них разрешение на запись:

Завершает наш перечень пример, в котором команда grep ищет файлы, содержащие слово “device“:

2.3. Заключение

Источник

Поиск в Linux с помощью команды find

Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.

Общий синтаксис

путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Тип объекта поиска. Возможные варианты:

Также доступны логические операторы:

Полный набор актуальных опций можно получить командой man find.

Примеры использования find

Поиск файла по имени

1. Простой поиск по имени:

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.

2. Поиск файла по части имени:

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий.

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

в) Более компактный вид имеют регулярные выражения, например:

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

* данная команда найдет файлы, которые менялись более 60 дней назад.

* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.

* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).

* все файлы, к которым обращались с 08.10.2019.

* все файлы, к которым обращались в октябре.

* все файлы, созданные с 07 сентября 2019 года.

* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50

По типу

Искать в текущей директории и всех ее подпапках только файлы:

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

2. Находим файлы, доступ к которым имеет только владелец:

Поиск файла по содержимому

* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.

С сортировкой по дате модификации

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

Поиск с действием (exec)

1. Найти только файлы, которые начинаются на sess_ и удалить их:

* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.

2. Переименовать найденные файлы:

3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:

* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.

5. Передать найденные файлы конвееру (pipe):

* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.

6. Произвести замену в файлах с помощью команды sed:

* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.

Чистка по расписанию

Команду find удобно использовать для автоматического удаления устаревших файлов.

Открываем на редактирование задания cron:

* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.

Источник

25 примеров использования команды find для начинающих знакомство с Linux

команда find linux примеры. Смотреть фото команда find linux примеры. Смотреть картинку команда find linux примеры. Картинка про команда find linux примеры. Фото команда find linux примеры

С помощью команды find можно искать интересующие файлы по ряду поисковых критериев. Критерии можно указывать как вместе, так и по отдельности, а затем уже совершать действия с полученном результатом. В этом руководстве мы собираемся описать команду find с помощью примеров использования.

1)Выведите списки всех файлов текущей директории и ее подкаталогов

Для того чтобы вывести списки всех файлов текущей директории и ее подкаталогов, мы можем использовать:

2)Найдите все файлы и директории в вашей текущей рабочей директории

Если нужно найти только директории, то можно использовать:

Чтобы найти только файлы, а не директории:

3)Выведите список всех файлов определенной директории

Для того чтобы найти файлы из определенной директории надо ввести:

This command will look for all the files in /root directory.

4)Найдите файл по имени в директории

Для поиска файла по имени в определенной директории введите:

5)Найдите файл во множестве директорий

Для поиска файлов во множестве директорий введите:

With this command, we can look for linuxtechi.txt file in /root & /etc directories.

6)Найдите файл по имени без учета регистра

7)Найдите все типы файлов отличные от упомянутого

Давайте предположим, что нам необходимо найти все файлы отличные от определенного типа файлов. Чтобы этого добиться вводим:

8)Найдите файлы по множеству признаков

9)Найдите файлы с использованием условия OR

Так же мы можем совмещать несколько поисковых критериев, что приведет к поиску файлов на основе удовлетворения одному из условий. Делается это с помощью оператора OR:

10)Поиск файлов на основе разрешений

11)Найдите все скрытые файлы

Для поиска скрытых файлов в директории введите:

12)Найдите все файлы со SGID

Для поиска файлов с битами SGID исполните команду:

13) Найдите все файлы со SUID

Для поиска файлов с битами SUID используем:

14)Найдите все исполняемые файлы

Для поиска только исполняемых файлов введите:

15)Найдите файлы с доступом только для чтения

К тому же, с помощью команды find можно найти файлы, доступные только для чтения:

16)Найдите все файлы пользователя

Для поиска файлов определенного пользователя надо использовать следующую команду:

17)Найдите все файлы группы

Для поиска файлов определенной группы используем:

18)Найдите все файлы определенного размера

19)Найдите все файлы в диапазоне размеров

Если мы ищем файл, размер которого нам не известен, но зато мы знаем примерный его размер, или нам просто сделать выборку файлов в определенном диапазоне размеров, то можно ввести:

Можно использовать команд find при поиске файлов тяжелее, чем, например, 50 mb:

20)Найдите файлы, измененные N дней назад

For example, we want to locate all the files that have been modified 8 days ago. We can accomplish that using ‘-mtime‘ option in find command

21)Найдите файлы, в которые заходили N дней назад

22)Найдите все пустые файлы и директории

Для нахождения всех пустых файлов в системе введем:

А чтобы вывести их директории:

23)Найдите самый большой и самый маленький файлы

Для вывода трех файлов из текущей директории введем:

Схожим образом мы можем вывести самые маленькие файлы текущей директории:

24)Найдите все файлы с определенным доступом и сменить его на 644 (или еще на что-нибудь)

Команда find может предложить продвинутые варианты использования. К примеру, мы может изменить все разрешения 644 определенных файлов на 777. Для этого исполняем:

25)Найдите все файлы, подходящие по определенным критериям, и удалите их

Рано или поздно может понадобиться удалить те или иные файлы. Если так произошло, то вводим:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ОпцияОписание
-nameПоиск по имени.
-inameРегистронезависимый поиск по имени.
-type