Find linux примеры по названию

Содержание
  1. Практические примеры использования команды find в Linux
  2. Часть 1: Простые команды find для поиска файлов по именам
  3. Поиск файлов по имени в текущей директории
  4. Поиск файлов в домашней директории
  5. Поиск файлов по имени без учёта регистра
  6. Найти директории по имени
  7. Поиск PHP файлов по имени
  8. Найти все PHP файлы в директории
  9. Часть 2: Поиск файлов на основе их прав доступа (разрешений)
  10. Найти все файлы с правами доступа 777
  11. Найти все файлы без прав доступа 777
  12. Поиск SGID файлов с доступом 644
  13. Поиск SUID файлов
  14. Найти SGID файлы
  15. Найти только файлы с разрешением на чтение
  16. Найти только файлы с разрешением на запись
  17. Поиск файлов на которые есть права на запись у кого угодно
  18. Следовать символическим ссылкам и не выводить сообщения об ошибках
  19. Найти исполнимые файлы
  20. Найти все файлы с доступом 777 и изменить их разрешения (chmod) на 644
  21. Найти директории с разрешением 777 и изменить их разрешения (chmod) на 755
  22. Поиск и удаление единичного файла
  23. Поиск и удаление нескольких файлов
  24. Поиск всех пустых файлов
  25. Поиск всех пустых директорий
  26. Найти все скрытые файлы
  27. Часть 3: Поиск файлов на основе их владельцев и групп
  28. Найти файл на основе имени пользователя
  29. Найти все файлы принадлежащие пользователю
  30. Найти все файлы принадлежащие группе
  31. Найти определённые файлы, принадлежащие пользователю
  32. Часть 4: Поиск файлов и директорий по времени и дате
  33. Найти файлы, которые были изменены определённое время назад
  34. Найти файлы, к которым был получен доступ определённое время назад
  35. Найти файлы, изменённые в заданном диапазоне дней
  36. Поиск файлов, чьи свойства недавно менялись
  37. Поиск недавно модифицированных файлов
  38. Поиск файлов к которым недавно выполнялся доступ
  39. Часть 5: Поиск файлов и директорий на основе размера
  40. Поиск файлов определённого размера
  41. Поиск файлов размера в определённом диапазоне
  42. Поиск и удаление файлов определённого размера
  43. Поиск файлов с определённым расширением и определённым размером и их удаление
  44. Часть 6: Поиск нескольких имён файлов (расширений)
  45. КОМАНДА FIND В LINUX
  46. ОСНОВНАЯ ИНФОРМАЦИЯ О FIND
  47. ОСНОВНЫЕ ПАРАМЕТРЫ КОМАНДЫ FIND
  48. КРИТЕРИИ
  49. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
  50. 1. ПОИСК ВСЕХ ФАЙЛОВ
  51. 2. ПОИСК ФАЙЛОВ В ОПРЕДЕЛЕННОЙ ПАПКЕ
  52. 3. ОГРАНИЧЕНИЕ ГЛУБИНЫ ПОИСКА
  53. 4. ИНВЕРТИРОВАНИЕ ШАБЛОНА
  54. 5. НЕСКОЛЬКО КРИТЕРИЕВ
  55. 6. НЕСКОЛЬКО КАТАЛОГОВ
  56. 7. ПОИСК СКРЫТЫХ ФАЙЛОВ
  57. 8. ПОИСК ПО РАЗРЕШЕНИЯМ
  58. 9. ПОИСК ФАЙЛОВ ПО ГРУППАХ И ПОЛЬЗОВАТЕЛЯХ
  59. 10. ПОИСК ПО ДАТЕ МОДИФИКАЦИИ
  60. 11. ПОИСК ФАЙЛОВ ПО РАЗМЕРУ
  61. 12. ПОИСК ПУСТЫХ ФАЙЛОВ И ПАПОК
  62. 13. ДЕЙСТВИЯ С НАЙДЕННЫМИ ФАЙЛАМИ

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

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

Для первоначального знакомства с командой find рекомендуется статья:

В качестве справочного материала по всем возможностям find рекомендуется:

Если вам просто нужно найти файл по имени, то обратите внимание на команду locate — вполне возможно, её окажется вполне достаточно под ваши нужды:

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

Команды в этой статье сгруппированы по нескольким разделам — от самых базовых до более продвинутых):

Часть 1: Простые команды find для поиска файлов по именам

Поиск файлов по имени в текущей директории

Найти все файлы, чьё имя zalinux.txt в текущей рабочей директории:

Поиск файлов в домашней директории

Найти все папки в директории /home с именем zalinux.txt:

Поиск файлов по имени без учёта регистра

Найти в директории /home все файлы с именем zalinux.txt чьё имя написано как заглавными, так прописными буквами.

Найти директории по имени

Найти все директории, чьё имя Zalinux в директории / (корневой директории).

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

Найти в текущей рабочей директории все файлы php чьё имя zalinux.php.

Найти все PHP файлы в директории

Найти все php файлы в директории.

Часть 2: Поиск файлов на основе их прав доступа (разрешений)

Найти все файлы с правами доступа 777

Найти все файлы, чьи права доступа равны 777 (право на чтение, запись и выполнение пользователем, группой и кем угодно.

Найти все файлы без прав доступа 777

Найти все файлы, разрешение на доступ к которым не равен 777.

Поиск SGID файлов с доступом 644

Найти все файлы с битом SGID чьи права доступа установлены на 644.

Поиск файлов со Sticky Bit с правами доступа 551

Найти все файлы с включённым Sticky Bit права доступа к которым равны 551.

Поиск SUID файлов

Найти все файлы с установленным SUID.

Найти SGID файлы

Найти все файлы у которых установлен SGID:

Найти только файлы с разрешением на чтение

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

Найти только файлы с разрешением на запись

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

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

Тем не менее если изменить пользователя, от чьего имени запускается команда, то результаты могут быть совсем другими. К примеру, подсчитаем количество файлов в директории /etc/ на которые есть право записи у владельца, но запустим команду от текущего пользователя и от суперпользователя (с sudo):

Результаты получились различными только из-за того, что у обычного пользователя не хватило прав «заглянуть» в некоторые подпапки и часть файлов не была проверена на соответствие условиям. При использовании sudo были проверены абсолютно все файлы и поэтому результатов получилось больше.

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

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

Также обратите внимание, как обозначено право на запись — используется плюс. Это означает, что могут присутствовать и другие права (например, на чтение и выполнение).

Следовать символическим ссылкам и не выводить сообщения об ошибках

При попытке доступа к файлам и папкам на которые недостаточно прав, выводятся сообщения о том, что доступ отклонён. Чтобы этого избежать, используйте после команды конструкцию 2>/dev/null

Если папка для поиска содержит символические ссылки, то по умолчанию команда find не следует им, что команда find переходила по символическим ссылкам, используйте опцию -L

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

Найти исполнимые файлы

Найти все исполнимые файлы.

Найти все файлы с доступом 777 и изменить их разрешения (chmod) на 644

Найти все файлы с разрешениями равным 777 и использовать команду chmod для установки разрешений на 644:

Найти директории с разрешением 777 и изменить их разрешения (chmod) на 755

Найти все файлы с разрешениями равным 777 и использовать команду chmod для установки разрешений на 755:

Поиск и удаление единичного файла

Найти единичный файл с именем hackware.txt и удалить его:

Поиск и удаление нескольких файлов

Для поиска нескольких типов файлов, таких как .mp3 или .txt и последующего их удаление используйте:

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

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

Поиск всех пустых директорий

Найти все пустые директории по указанному пути:

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

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

Часть 3: Поиск файлов на основе их владельцев и групп

Найти файл на основе имени пользователя

Найти все или один файл с именем hackware.txt в / (корневой) директории принадлежащие пользователю root:

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

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

Найти все файлы принадлежащие группе

Для поиска всех файлов, принадлежащих группе Developer в директории /home:

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

Чтобы найти все файлы .txt пользователя mial в директории /home:

Часть 4: Поиск файлов и директорий по времени и дате

Найти файлы, которые были изменены определённое время назад

Чтобы найти все файлы, которые были изменены ровно 50 дней назад:

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

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

Найти файлы, изменённые в заданном диапазоне дней

Чтобы найти все файлы, которые были модифицированы более 50 дней назад и менее 100 дней назад:

Поиск файлов, чьи свойства недавно менялись

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

Поиск недавно модифицированных файлов

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

Поиск файлов к которым недавно выполнялся доступ

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

Часть 5: Поиск файлов и директорий на основе размера

Поиск файлов определённого размера

Чтобы найти все файлы размером ровно 50MB используйте:

Поиск файлов размера в определённом диапазоне

Чтобы найти все файлы, чем размер более 50MB и менее 100MB:

Поиск и удаление файлов определённого размера

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

Поиск файлов с определённым расширением и определённым размером и их удаление

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

Часть 6: Поиск нескольких имён файлов (расширений)

Этот раздел посвящён ситуациям, когда нужно одной командой выполнить поиск файлов по нескольким именам или нескольким расширениям.

Предположим что нужно найти все файлы в текущей директории с файловыми расширениями .sh и .txt, это можно сделать следующей командой:

Объяснение предыдущей команды:

  • . (точка) означает текущую директорию
  • -type используется для указания типа файла, мы ищем обычные файлы, которые здесь обозначаются буквой f
  • -name используется для указания шаблона поиска. В данном случае указаны расширения файлов
  • -o означает «ИЛИ»
  • скобки () используются для установки приоритета логических операций

В результате получается следующее:

  • нужно найти файлы И (имя у них «*.sh» ИЛИ имя «*.txt»)

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

  • (нужно найти файлы И имя у них «*.sh») ИЛИ имя «*.txt»

Файловые расширения, поскольку они содержат символы с особым значением для оболочки, нужно поместить в кавычки. По этой же причине нужно экранировать скобки с помощью обратного слэша (\).

Для поиска по трём файловым расширениям .sh, .txt and .c используется следующая команда:

И ещё один пример по поиску всех изображений — ищутся файлы по расширениям .png, .jpg, .deb и .pdf:

Как можно понять из приведённых выше команд, добавляя опцию -o («ИЛИ») можно указать любое количество условий. Помните, что логическая операция «ИЛИ» имеет меньший приоритет перед операцией «И». Для операции «И» не требуется специальная опция (хотя она есть), поскольку она подразумевается по умолчанию.

Источник

КОМАНДА FIND В LINUX

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

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

ОСНОВНАЯ ИНФОРМАЦИЯ О FIND

Find — это одна из наиболее важных и часто используемых утилит системы Linux. Это команда для поиска файлов и каталогов на основе специальных условий. Ее можно использовать в различных обстоятельствах, например, для поиска файлов по разрешениям, владельцам, группам, типу, размеру и другим подобным критериям.

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

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

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

Папка — каталог в котором будем искать

Параметры — дополнительные параметры, например, глубина поиска, и т д

Критерий — по какому критерию будем искать: имя, дата создания, права, владелец и т д.

Шаблон — непосредственно значение по которому будем отбирать файлы.

ОСНОВНЫЕ ПАРАМЕТРЫ КОМАНДЫ FIND

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

  • -P никогда не открывать символические ссылки
  • -L — получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
  • -maxdepth — максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
  • -depth — искать сначала в текущем каталоге, а потом в подкаталогах
  • -mount искать файлы только в этой файловой системе.
  • -version — показать версию утилиты find
  • -print — выводить полные имена файлов
  • -type f — искать только файлы
  • -type d — поиск папки в Linux

КРИТЕРИИ

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

  • -name — поиск файлов по имени
  • -perm — поиск файлов в Linux по режиму доступа
  • -user — поиск файлов по владельцу
  • -group — поиск по группе
  • -mtime — поиск по времени модификации файла
  • -atime — поиск файлов по дате последнего чтения
  • -nogroup — поиск файлов, не принадлежащих ни одной группе
  • -nouser — поиск файлов без владельцев
  • -newer — найти файлы новее чем указанный
  • -size — поиск файлов в Linux по их размеру

ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

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

1. ПОИСК ВСЕХ ФАЙЛОВ

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

2. ПОИСК ФАЙЛОВ В ОПРЕДЕЛЕННОЙ ПАПКЕ

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

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

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

find . -iname «test*»

Читайте также:  Find linux примеры по названию

3. ОГРАНИЧЕНИЕ ГЛУБИНЫ ПОИСКА

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

find . -maxdepth 1 -name «*.php»

4. ИНВЕРТИРОВАНИЕ ШАБЛОНА

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

find . -not -name «test*»

5. НЕСКОЛЬКО КРИТЕРИЕВ

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

find . -name «test» -not -name «*.php»

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

find -name «*.html» -o -name «*.php»

6. НЕСКОЛЬКО КАТАЛОГОВ

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

find ./test ./test2 -type f -name «*.c»

7. ПОИСК СКРЫТЫХ ФАЙЛОВ

Найти скрытые файлы:

8. ПОИСК ПО РАЗРЕШЕНИЯМ

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

find . type f -perm 0664

Найти файлы с установленным флагом suid/guid:

find / -perm 2644

find / -maxdepth 2 -perm /u=s

Поиск файлов только для чтения:

find /etc -maxdepth 1 -perm /u=r

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

find /bin -maxdepth 2 -perm /a=x

9. ПОИСК ФАЙЛОВ ПО ГРУППАХ И ПОЛЬЗОВАТЕЛЯХ

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

find . -user sergiy

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

find /var/www -group developer

10. ПОИСК ПО ДАТЕ МОДИФИКАЦИИ

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

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

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

find / -mtime +50 –mtime -100

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

11. ПОИСК ФАЙЛОВ ПО РАЗМЕРУ

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

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

find / -size +50M -size -100M

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

find . -type f -exec ls -s <> \; | sort -n -r | head -5

find . -type f -exec ls -s <> \; | sort -n | head -5

12. ПОИСК ПУСТЫХ ФАЙЛОВ И ПАПОК

find /tmp -type f -empty

13. ДЕЙСТВИЯ С НАЙДЕННЫМИ ФАЙЛАМИ

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

find . -exec ls -ld <> \;

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

find /tmp -type f -name «*.txt» -exec rm -f <> \;

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

find /home/bob/dir -type f -name *.log -size +100M -exec rm -f <> \;

Источник

Оцените статью