Наверх
 

Навигация
Опрос
Какие виды уроков Вы хотите видеть на сайте?
Битрикс
DLE
CSS
Joomla
Wordpress
Все для хостинга
Все для фотошопа
Другое

База уроков » » » Shell команда find - для поиска файлов и каталогов

Shell команда find - для поиска файлов и каталогов

11 янв 2014 | Комментариев: 0 | Просмотров: 1729

find — это shell команда, которая выполняет поиск каталогов и файлов. Ниже приведены несколько пример использования команды и ее опций.

Найти файл filename в текущем каталоге:
 

find . -name filename

 
после команды find указываем путь, где будет проводится поиск, ключ -name используется для поиска по имени, после него следует имя директории или файла. В данном примере задан поиск по названию filename в текущем каталоге (. — точка это обозначение текущего каталога).
 

find . -iname filename

 
- тот же поиск по имени, описанный выше, но без учета регистра. Для указания того, что мы ищем именно файл используем ключ «-type»:
 

find . -type f -name filename

 
«-type f» — данный ключ указывает что ищем файл (f)
«-type d» — данный ключ указывает что ищем директорию (d)
 

find . -type d -name dirname

 
Для того чтобы найти все файлы с расширением «.txt», тогда используем звездочку «*».
* — обозначает любой набор символов. Для поиска всех файлов с расширением «.txt» в каталоге /home используем следующую команду:
 

find /home -type f -name *.txt

 
Если необходимо найти файлы или папки по дате их создания или последнего доступа к ним, используем ключ «-atime» — поиск по дате последнего доступа к файлу или его созданию:
 

find . -type f -atime 1

 
В данном примере представлен поиск всех фалов в текущем каталоге, которые были созданы, изменялись или к ним был получен доступ за прошлые сутки, тоесть больше чем 24 часа и меньше чем 48 часов назад. «-atime n» — считается n*24, то есть в нашем случае 1*24=24 часа назад, и команда ищет именно сколько 24-часовых периодов назад получали доступ к файлу. Данный пример выполнит поиск по всем файлам к которым был получен доступ более чем 24 назад:
 

find . -type f -atime +1

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

find . -type d -atime +2

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

find . -type f -atime -1

 
Ниже приведены ключи по которым также можно выполнить поиск:
«-ctime n» — по дате создания или изменения статуса файла или директории;
«-mtime n» — поиск файлов, которые были изменены, редактированы, или созданы n*24 часов назад;
«-amin n» — файлы или директории, к которым получали доступ n минут назад;
«-cmin n» — файлы или директории, статус которых был изменен или были они создан n минут назад;
«-mmin» — файлы или директории, которые были изменены или созданы n минут назад.
 
Для того чтобы выполнить поиск файлов и каталогов по их владельцу, используем ключ «-user»:
 

find . -name *.txt -user nobody

 
В данном примере выполнен поиск всех файлов в текущем каталоге с расширением .txt владельцем которых является пользователь nobody. Если необходимо по результату поиска выполнить какую-либо команду, то используем ключ «-exec». Ключ «-exec» используется для указания другой команды, которую надо выполнить над каждым аргументом результата поиска. Ниже приведен пример поиска и удаления всех файлов начинающихся с test в директории /home:
 

find /home -type f -name test* -exec rm -f {} ;

 
«/home» — выполнить поиск в директории /home
«-type f» — выполнить поиск только по файлам
«-name test*» — все файлы, имя которых начинается из слова «test»
«-exec rm -f {}» — запустить команду удаления «rm -f» для каждого найденного файла
«{}» — заменяет список найденных аргументов
«;» — конец команды
 
Также командой find можно поменять права к папкам и файлам сразу. Например:
 
1. Если хотим изменить права к папкам, то используем команду:
 

find /home/nobody/public_html -type d -exec chmod 755 {} \;

 
2. Если хотим изменить права ко всем файлам, то используем команду:
 

find /home/nobody/public_html -type f -exec chmod 644 {} \;

 
Так же не забываем, что при замене прав на папки данной командой, на сам каталог 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" -- {} \;



Ссылка на новость:

    html-cсылка на публикацию
    BB-cсылка на публикацию
    Прямая ссылка на публикацию

ЕЩЕ НА ЭТУ ТЕМУ:

Установка IonCube Loader на FreeBSD 8.3 x86_64

Установка IonCube Loader на FreeBSD 8.3 x86_64

Установка ionCube PHP loader достаточно проста, для этого вам необходимо скачать данный модуль соответствующий архитектуре Вашей ОС с сайта разработчика
Установка IonCube PHP Loader на Debian 6.0 x86_64

Установка IonCube PHP Loader на Debian 6.0 x86_64

Установка ionCube PHP loader достаточно проста, для этого вам необходимо скачать данный модуль соответствующий архитектуре Вашей ОС с сайта разработчика
Красивый эффект анимации для галереи

Красивый эффект анимации для галереи

Эффект, который позволит преобразить вашу галерею фотографий, с помощью библиотеки Raphael и jQuery. Нужно создать три файла: index.html, default.css, init.js
Zoomy - красивый эффект лупы на изображении

Zoomy - красивый эффект лупы на изображении

Эффект лупы достигается благодаря использованию простого jQuery плагина Zoomy. Вам понадобятся две копии одного и того же изображения - первая - копия
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.