Как найти файл в Linux с помощью команды Find

Команда find в Linux является одной из самых важных и удобных команд в системах Linux. Она может, как следует из названия, находить файлы на вашем ПК с Linux на основе практически любых условий и переменных, которые вы задаете. Вы можете находить файлы по правам доступа, пользователям, группам, типу файла, дате, размеру и другим возможным критериям с помощью команды find. Здесь мы покажем вам, как найти файл в Linux с помощью команды find.
Команда find доступна по умолчанию на большинстве дистрибутивов Linux, поэтому вам не нужно устанавливать для нее пакет.
Также читайте: Использование команд find, locate, which и whereis для поиска файлов в Linux
Поиск файлов по имени в текущих директориях
Самый очевидный способ поиска файлов — по имени. Чтобы найти файл по имени в текущей директории, выполните:
find . -name photo.png
Если вы хотите найти файл по имени, который содержит как заглавные, так и строчные буквы, выполните:
find . -iname photo.png
Если вы хотите найти файл в корневой директории, добавьте к вашему запросу sudo, что даст вам все необходимые права для этого, а также символ /, который указывает Linux искать в корневой директории. Наконец, выражение -print отображает директории ваших результатов поиска. Если вы искали Gzip, вам нужно ввести:
sudofind/-namegzip-print
Также читайте: Как найти большие файлы в Linux
Поиск файлов в определенной директории
Если вы хотите найти файлы в определенной директории, например, “/home”, выполните:
find/home -name filename.txtЕсли вы хотите найти файлы с расширением “.txt” в директории “/home”, выполните:
find/home -name"*.txt"Чтобы найти файлы с именем “test.txt” в нескольких директориях, таких как “/home” и “/opt”, выполните:
find/home /opt -name test.txtЧтобы найти скрытые файлы в директории “/home”, выполните:
find/home -name".*"Чтобы найти один файл с именем “test.txt” и удалить его, выполните:
find/home -type f -name test.txt -execrm-f{}Чтобы найти все пустые файлы в директории “/opt”, выполните:
find/opt -type f -emptyПоиск директорий по имени
Если вы хотите найти все директории с именем “testdir” в директории “/home”, выполните:
find/home -type d -name testdirЧтобы найти все пустые директории в “/home”, выполните:
find/home -type d -emptyПоиск файлов с определенными правами доступа
Команду find можно использовать для поиска файлов с определенными правами доступа с помощью опции perm.
Чтобы найти все файлы с правами доступа “777” в директории “/home”, выполните:
find/home -type f -perm 0777 -printЧтобы найти все файлы без прав доступа “777”, выполните:
find . -type f !-perm777Чтобы найти все файлы только для чтения, выполните:
find/home -perm/u=rЧтобы найти все исполняемые файлы, выполните:
find/home -perm/a=xЧтобы найти все файлы с установленным битом «sticky», права доступа которых “553”, выполните:
find/home -perm1553Чтобы найти все файлы с установленным SUID, выполните:
find/home -perm/u=sЧтобы найти все файлы с правами доступа “777” и изменить их права доступа на “700”, выполните:
find/home -type f -perm 0777 -print-execchmod700{} ;Поиск файлов и директорий по дате и времени
Чтобы найти все файлы в “/opt”, которые были изменены 20 дней назад, выполните:
find/opt -mtime20Чтобы найти все файлы в “/opt”, которые были доступны двадцать дней назад, выполните:
find/opt -atime20Чтобы найти все файлы в “/opt”, которые были изменены более 30 дней назад и менее 50 дней назад:
find/opt -mtime +30-mtime-50Чтобы найти все файлы в “/opt”, которые были изменены за последние два часа, выполните:
find/opt -cmin-120Поиск файлов и директорий по размеру
Чтобы найти все файлы размером 10 МБ в директории “/home”, выполните:
find/home -size 10MЧтобы найти все файлы в директории “/home”, которые больше 10 МБ и меньше 50 МБ, выполните:
find/home -size +10M -size-50MЧтобы найти все файлы “.mp4” в директории “/home” размером более 10 МБ и удалить их с помощью одной команды, выполните:
find/home -type f -name*.mp4 -size +10M -execrm{} ;Как вы можете видеть, команда find невероятно полезна для администрирования системы, поиска файлов в директориях и, в общем, для обрезки виртуального дерева директорий в Linux. Если вам понравилась эта статья о Linux, обязательно ознакомьтесь с другими нашими материалами о Linux, такими как как использовать команду scp для безопасной передачи файлов, как использовать nnn в качестве файлового менеджера в терминале и как исправить поврежденные пакеты.