1
|
|
Голосование Анекдот |
Команда find в shellНайти определенный файл или каталог через shell всегда можно при помощи известной команды find. Однако использовать ее можно по-разному, а всяческие опции во время поиска открывают массу дополнительных возможностей. Рассмотрим их подробнее.Примитивный поиск файла по названию через find выглядит так: find . -name test После самой команды find пишется точный путь каталога, в котором нужно что-то найти. В примере указана точка, что говорит о поиске в текущей папке. Параметр -name указывает на поиск по наименованию. В конце обязательно указывается непосредственно имя. Т.е. мы ищем нечто под названием test в текущей папке. А вот так происходит аналогичный поиск, в котором не учитывается регистр символов: find . -iname test Обратите внимание на то, что конструкция поиска позволяет найти как файл, так и папку с заданным именем. Чтобы исключить из выдачи любые папки, нужно конкретизировать тип искомых данных при помощи специального ключа -type. find . -type f -name test Применение ключа -type f ограничит выдачу только файлами (f). Аналогично можно сделать и для папок, только использовать нужно уже ключ -type d: find . -type d -name test Еще больше сузить область поиска можно, если указать конкретное расширение файлов. К примеру, нам нужно найти все файлы с расширением .db в папке /var/docs: find /var/docs -type f -name *.db Как видите, поиск теперь будет не в текущем каталоге, а в заданном нами. Если же ситуация сложилась так, что имя файла или папки неизвестно, то можно попробовать поискать по времени доступа или по дате создания. Для этого существует ключ -atime: find . -type f -atime 1 В поисковой выдаче будут все файлы с любым расширением, которые использовались или были созданы за период последних 24 часов. Параметр n в ключе -atime n обозначает количество 24-часовых промежутков. Можно также отсортировать все, что было задействовано больше суток тому: find . -type f -atime +1 По той же логике ограничить можно истечением двух суток: find . -type f -atime +2 А вот так мы найдем все папки, которые были использованы за последние 24 часа: find . -type f -atime -1 Существуют и другие ключи, используемые по такому же принципу. Самые популярные из них: -mtime n – поиск файлов, с которыми были проведены любые действия определенное время назад. Само время устанавливается по формуле n=n*24; -ctime n – поиск по времени смены статуса или созданию конкретного файла или папки; -amin n – папки/файлы, которые были использованы определенное время (n) назад (в минутах); cmin n – папки/файлы с измененным статусом (создание, использование и т.п.) за определенное количество минут назад (параметр n); mmin n – папки/файлы с измененным статусом (создание, использование и т.п.) за определенное количество секунд назад (параметр n). Также поиск легко ограничивается владельцем директории или файла. Для этого существует ключ -user: find . -name *.jpg -user Ivan Данная конструкция позволяет найти все JPG изображения пользователя с именем Ivan. Однако просто искать чаще всего недостаточно. Над найденными файлами или папками можно сразу проводить определенные операции. Давайте познакомимся с примером, в котором все найденные по маске файлы будут удалены. Для этого будем работать с ключом -exec. Он предназначен для повторения определенного действия над каждым результатом выдачи: find /aaa -type f -name tmp* -exec rm -f {}; Пояснения по конструкции: /aaa» – директория поиска /aaa; -type f» – ограничиваемся файлами, папки нам не нужны; -name tmp* – имя файла должно начинаться на tmp, на месте звездочки могут быть любые символы; -exec rm -f {} – удаляем каждый найденный по маске файл; {} – список аргументов заменяется; ; – логичный конец конструкции. А вот еще один интересный пример, позволяющий установить нужные права для любых файлов, найденных в определенной папке: find /home/nobody/public_html -type f -exec chmod 644 {}; Аналогично и для найденных папок: find /home/nobody/public_html -type d -exec chmod 755 {}; Стоит отметить, что главный каталог /public_html также получит новые права, т.к. в результатах поиска он будет определяться текущим. Возвращаем ему правильные права простой командой: chmod 750 public_html Наконец, предлагаем пример более "продвинутой" работы с find. Тут мы ищем .htaccess и закрываем комментариями определенные php-переменные: find /home/nobody/public_html -type f -name .htaccess -exec replace "php_admin_flag" "#php_admin_flag" -- {}; find /home/nobody/public_html -type f -name .htaccess -exec replace "php_flag" "#php_flag" -- {}; find /home/nobody/public_html -type f -name .htaccess -exec replace "php_admin_value" "#php_admin_value" -- {}; find /home/nobody/public_html -type f -name .htaccess -exec replace "php_value" "#php_value" -- {};
Мой комментарий |
Проверка IP
Ваш IP ....... 3.144.253.161 ← Проверить
Страна ..... не определена Проверка домена (+whois)Расширенный поиск (более 50 зон)
Акции провайдеров
Мы подключили новый сервер в Нидерландах для услуги ВПС из 2 х Xeon E5-2690v4 и 8 Enterprise SSD дисков.
12
RICHHost
Не думайте о поиске домена - просто покупайте у нас хостинг и получайте домен бесплатно!
11
Все акции хостинг провайдеров
AdminVPS
выгодные цены на терморегуляторы для теплого пола в Москве
|