Команда Linux find
— одна из самых важных и удобных команд в системах Linux. Как следует из названия, он может находить файлы на вашем ПК с Linux практически на основе любых установленных вами условий и переменных. Вы можете найти файлы по разрешениям, пользователям, группам, типу файла, дате, размеру и другим возможным критериям с помощью команды find
. Здесь мы покажем вам, как найти файл в Linux с помощью команды find
.
Команда find
доступна в большинстве дистрибутивов Linux по умолчанию, поэтому вам не нужно устанавливать для нее пакет.
Также читайте: Использование команды find, найдите, какие и где находятся команды для поиска файлов в Linux
Найти файлы по имени в текущих каталогах
Самый очевидный способ поиска файлов — по имени. Чтобы найти файл по имени в текущем каталоге, выполните:
find . -name photo.png
Если вы хотите найти файл по имени, содержащему как заглавные, так и строчные буквы, выполните:
find . -iname photo.png
Contents
Найти файлы по имени в текущих каталогах
2024/05/find-iname-photo.jpg" alt="Найти фотографию Инаме">Если вы хотите найти файл в корневом каталоге, добавьте к поиску префикс sudo
, который предоставит вам все необходимые для этого разрешения, а также /
, который сообщает Linux о необходимости поиска в корневом каталоге. Наконец, выражение -print
отображает каталоги результатов поиска. Если вы ищете Gzip, введите:
sudo find / -name gzip -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 -exec rm -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 ! -perm 777Чтобы найти все файлы, доступные только для чтения, выполните:
find /home -perm /u=rЧтобы найти все исполняемые файлы, выполните:
find /home -perm /a=xЧтобы найти все файлы наборов липких битов с разрешениями «553», выполните:
find /home -perm 1553Чтобы найти все файлы наборов SUID, выполните:
findНайти каталоги по имениn> /u=s Чтобы найти все файлы с разрешениями «777» и изменить их разрешения на «700», выполните:
find /home -type f -perm 0777 -print -exec chmod 700 {} ;Найти файлы и каталоги по дате и времени
Чтобы найти все файлы в каталоге «/opt», которые были изме
Найти файлы с определенными разрешениями
pan>find /opt -mtime 20
Чтобы найти все файлы в каталоге «/opt», к которым обращались двадцать дней назад, выполните:
find /opt -atime 20
Чтобы найти все файлы в каталоге «/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 -exec rm {} ;
Как видите, команда find
невероятно полезна для администрирования системы, просмотра каталогов в поисках файлов и вообще обрезки дерева виртуальных каталогов в Linux. Если вам понравилась эта статья о Linux, обязательно ознакомьтесь с другими нашими материалами о Linux, например как использовать команду scp для безопасной передачи файлов , Найти файлы и каталоги по дате и времениового менеджера в терминале и как исправить сломанные пакеты .р>