Характеристика функций find на CentOS
В этой статье мы рассмотрим команду find, которая используется для поиска текстовых файлов в системе Linux. Благодаря ей вы можете найти необходимый файл через его имя, размер, дату создания и прочие параметры.
Команда имеет широкий спектр рабочих функций и достаточно сложный синтаксис, поэтому иногда из-за этого у новичков часто возникают вопросы и некоторые сложности. Именно поэтому мы сделаем обзор ее функций.
И так, первым в нашем обзоре будет общий синтаксис команды find:
find [перечень_каталогов] критерий_поиска
где «перечнем каталогов» определяется местонахождение нужного файла.
В «критерии поиска» указывается знаки:
"-", "(", ")"', "," или "!" с которых программа find и начинает поиск нужного критерия.
Путь также задается с помощью специальных символов. Уточняем что путь, это как указатель места, где должен производится поиск. Рассмотрим значение некоторых символов.
Чтобы провести поиск в конкретном каталоге, используются символы:
. — чтобы провести поиск в текущем каталоге;
/ — чтобы провести поиск в корневом каталоге;
~ — чтобы провести поиск в домашнем каталоге.
Зачастую, вы можете найти нужный файл по конкретному критерию поиска,
Например: «-name имя_файла».
Рассмотрим как благодаря команде find, мы можем отыскать нужные вам файлы, по определенным критериям:
-name — используя эту опцию, находим файл по имени;
-user — так, вы сможете найти файл или каталог, который был создан конкретным пользователем;
-group — опция для поиска файлов, которые входят в одну общую группу
-perm — с ее помощью, находим файлы которые характеризуются наличием режима доступа;
-type — задаем поиск файлов, что разделяются на разные типы;
size n — ищем файлы состоящий из определенного (n) количества единиц;
-mtime -n +n — можем задать поиск файлов, содержание которых было изменено более чем (+), но менее, чем (-) дней тому назад.
Напоминаем, что также благодаря команде find, мы можем задать другие права в папках и файлах.
Допустим, нам нужно рекурсивно изменить права в директории, а соответственно и на все файла имеющиеся в ней.
Например: одно из самых обыденных явлений смена прав в папках на 755 и в файлах на 644.
В первую очередь меняем права на файлы:
find /home/tatiana/public_html -type f -exec chmod 0644 {} \;
Далее, на папки:
find /home/tatiana/public_html -type d -exec chmod 0755 {} \;
Команда find придет на помощь и в поиске файлов с нужным расширением. Для этого используем знак звездочки «*».
Например: чтобы найти файл с расширением «.db», используем «*» вместо любого набора символов.
find /var/tatiana -type f -name *.db
Для поиска фалов отдельно от каталогов, прописываем полное дерево каталогов (например var/marina) и только после указываем имя файла («-name» ), который ищем.
Например: чтобы найти все файлы имеющие расширение ‘tex’ , вводим:
Find ~ -iname ' *.tex '