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

Функция поиска

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

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

Также читайте: Использование команд find, locate, which и whereis для поиска файлов в Linux

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

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

find . -name photo.png

Найти фото

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

find . -iname photo.png

Найти Iname фото

Если вы хотите найти файл в корневой директории, добавьте к вашему запросу sudo, что даст вам все необходимые права для этого, а также символ /, который указывает Linux искать в корневой директории. Наконец, выражение -print отображает директории ваших результатов поиска. Если вы искали Gzip, вам нужно ввести:

sudofind/-namegzip-print

Найти Gzip

Также читайте: Как найти большие файлы в 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 в качестве файлового менеджера в терминале и как исправить поврежденные пакеты.