Новости проекта:

Программы скачать
Конкурсы
Заработать на сервер

Команда find

2014.01.25 15:17:17
Команда find
[#1]
Avatar
Сообщений: 1535
21.53
Администратор

0

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» для каждого найденного файла
«{}» — заменяет список найденных аргументов
«;» — конец команды
--------
PAYEER кошелёк на каждый день. Открыть счёт.
Раскрути свой сайт Покупай вечные ссылки за пол цены
597
Серверов всего
517
Серверов онлайн
2246
Игроков онлайн
Добавить сервер
Boost сервера
Конкурс лучшего форумчанина
1.  Место свободно
2.  Место свободно
3.  Место свободно