Главная > Управление файлами и каталогами > find

Освоение команды find

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

Основные опции

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

1. Базовый поиск

2. Условия по времени

3. Условия по размеру и правам

4. Действия

Сгенерированная команда:

Комбинируйте команды.

Описание:

`find` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Логические операторы

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

Основные логические операторы Операторы, используемые для объединения нескольких условий. По умолчанию применяется AND (`-a`).
Оператор Описание Пример
-and (или опускается) Когда оба условия, левое и правое, истинны `find . -name "*.txt" -and -size +1M`
-or Когда хотя бы одно из условий, левое или правое, истинно `find . -name "*.log" -or -name "*.tmp"`
-not (или !) Когда условие ложно `find . -not -name "*.txt"`
( ) Группировка условий (требует экранирования) `find . \( -name "*.txt" -or -name "*.doc" \)`

Приоритет операторов

Операторы команды `find` обычно оцениваются таким образом, что действия обрабатываются после выражений. Внутри условий можно использовать скобки (`()`) для явного указания приоритета. При использовании скобок их необходимо экранировать обратной косой чертой (`\`), так как они имеют специальное значение в оболочке.

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

Попрактикуйтесь в поиске и управлении файлами с помощью практических примеров использования команды `find`.

Найти все файлы с расширением '.log' в текущем каталоге

find . -name "*.log"

Ищет все файлы, заканчивающиеся на `.log`, в текущем местоположении.

Найти файлы размером более 50 МБ

find /var -size +50M

Ищет все файлы размером более 50 МБ в каталоге `/var` системы.

Найти файлы 'conf', измененные за последние 7 дней

find . -name "*.conf" -mtime -7

Находит файлы `.conf`, измененные в течение последних 7 дней в текущем каталоге.

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

find / -type d -perm 777

Ищет каталоги с правами, установленными на 777, по всей системе, чтобы проверить риски безопасности.

Удалить старые файлы '.tmp'

find /tmp -name "*.tmp" -mtime +30 -delete

Находит и удаляет все файлы `.tmp` старше 30 дней в каталоге `/tmp`.

Выполнить определенную команду для найденных файлов (chmod)

find . -name "*.sh" -exec chmod 755 {} \;

Предоставляет права на выполнение (755) всем файлам с расширением `.sh` в текущем каталоге.

Найти файлы размером более 1 ГБ, принадлежащие определенному пользователю

find /home -user user1 -size +1G

Ищет в каталоге `/home` файлы, принадлежащие `user1` и имеющие размер более 1 ГБ.


Те же команды в категории