6.4.7 Поиск с помощью find
Команда find является хорошим инструментом для поиска файлов и директорий в Unix-подобных операционных системах. Она позволяет пользователям осуществлять сложные поисковые операции, основываясь на различных критериях, таких как имя файла, размер, дата модификации, права доступа и многое другое.
Использование find может значительно упростить многие задачи системного администрирования и управления файлами. Например, Вы можете быстро найти все файлы определенного типа, удалить старые файлы, изменить права доступа для группы файлов или даже выполнить команду для каждого найденного файла.
Важное примечание:
хотя команда find
чрезвычайно полезна, она также может быть потенциально опасной при неправильном использовании. Будьте особенно осторожны при работе с системными файлами или при выполнении операций, которые могут изменить или удалить данные.
Рекомендуется сначала тестировать команды на небольшом наборе файлов или использовать опцию -print
для проверки результатов перед выполнением любых деструктивных действий. Также стоит создавать резервные копии важных данных перед массовыми операциями с файлами.
Основные операции поиска
Для начала Вам нужно подключиться к серверу с помощью терминала SSH. Если Вы не знакомы с процессом подключения через SSH, рекомендуем ознакомиться с нашей подробной инструкцией по указанной ссылке.
После успешного подключения Вы получите доступ к командной строке сервера. Именно в ней Вы сможете использовать команду find
для поиска файлов и папок. Эта команда чрезвычайно гибкая и позволяет осуществлять поиск по различным критериям.
Поиск файлов по имени
-
Поиск файлов по имени:
Объяснение: команды ищут файл
report.txt
или все файлы с расширением.txt
в директории/home/user/documents/
. -
Поиск без учета регистра:
Объяснение: команда ищет файл
project.conf
в директории/home/user/projects/
, игнорируя регистр букв.
Примечание: поиск в системных директориях может требовать прав администратора (root).
Поиск по размеру файлов
-
Поиск по размеру файлов:
Объяснение: команда находит все файлы размером более
10 мегабайт
в директории/home/user/downloads/
.
Поиск по правам доступа
-
Поиск по маске прав:
Объяснение: команда находит все файлы с правами доступа 700 (чтение, запись и выполнение только для владельца) в директории
/home/user/scripts/
.
Поиск по дате модификации
-
Поиск по дате файлов, созданных или измененных в течение последних 5 дней:
Объяснение: команда находит файлы, созданные или измененные в течение последних
5 дней
в директории/home/user/documents/
. -
Файлы, созданные или измененные в течение последних 5 минут:
Объяснение: команда находит файлы, созданные или измененные в течение последних
5 минут
в директории/home/user/temp/
. -
Найти файлы, созданные или измененные более 30 дней назад (поиск устаревших файлов):
Объяснение: команда находит файлы, которые не изменялись более
30 дней
в директории/home/user/archives/
. -
Удалить созданные или измененные файлы старше 30 дней:
Объяснение: команда удаляет файлы, которые не изменялись более
30 дней
в директории/home/user/temp/
.
Внимание: удаление файлов является необратимой операцией. Будьте осторожны при использовании опции -delete
.
-
Время последнего обращения к которым более 5 дней:
Объяснение: команда находит файлы, к которым не обращались более
5 дней
в директории/home/user/logs/
.
Поиск по содержимому
-
Поиск строки в файлах:
Объяснение: команда ищет слово
TODO
(без учета регистра) во всех файлах в директории/home/user/projects/
. -
Найти все файлы php, в которых встречается строка STRING:
Объяснение: команда ищет слово
STRING
во всех PHP файлах в директории/var/www/html/
. -
Также можно использовать команду grep с опцией
-R
для поиска файлов по содержимому:Объяснение: команда рекурсивно ищет
STRING
во всех файлах в директории/home/user/documents/
.
Замена текста в файлах
-
Замена текста в файлах:
Объяснение: команда заменяет все вхождения
old_server
наnew_server
во всех.conf
файлах в директории/home/user/configs/
.
Важно: будьте осторожны при использовании этой команды, поскольку она изменяет содержимое файлов.
Изменение прав доступа
-
Массовое изменение прав доступа, установка прав доступа 644 на все файлы в текущей директории и всех поддиректориях:
Объяснение: команда устанавливает права доступа 644 на все файлы в директории
/home/user/public_html/
и ее поддиректориях. -
Установка прав доступа 755 на все папки в текущей директории и всех поддиректориях:
Объяснение: команда устанавливает права доступа 755 на все директории в
/home/user/public_html/
и ее поддиректориях.
Сложные операции поиска
-
Поиск всех файлов html, содержащих код:
0; URL = http
и установка для них всех прав 000 (полезно для поиска вредоносного кода):Объяснение: команда ищет HTML файлы, которые содержат потенциально вредоносный код перенаправления, и изменяет их права доступа на 000.
-
Поиск всех php файлов в указанном каталоге
wp-content/uploads
до 3-х вложений всех пользователей всех сайтов сервера и установка им всем прав 000:Объяснение: команда находит все PHP файлы в директориях загрузок WordPress и изменяет их права доступа на 000, что может быть полезным для безопасности.
Примечание: большинство команд требуют прав администратора (root) для выполнения. Также, будьте осторожны при изменении прав доступа к файлам. Ошибочное изменение прав на системные директории может повредить работоспособность ОС.