Лекция: Команда поиска файлов find

Выполняет поиск файла в файловой системе, начиная с каталога dir:

find dir [opt]

Команда find исключительно полезная вещь, что делает ее одновременно одной из самых сложных в использовании команд. Использование команды find включает три этапа, которые в свою очередь могут состоять из одного или нескольких этапов: 1) где искать; 2) что искать; 3) что делать, когда файл найден.

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

find / -name filename -print

В больших системах поиск от корня может занять слишком много времени, так как будет просматриваться каждый каталог, каждый диск, включая подключенные сетевые диски. Более приемлемым будет поиск по нескольким каталогам. Если вы знаете, что файл, вероятнее всего, находится в каталогах /usr или /usr2, воспользуйтесь следующей командой:

find /usr /usr2 -name filename -print

Наиболее часто используемые параметры для find:

 

Опции Описание
-name file Параметр file может быть именем или шаблоном, содержащим символы подстановки (* или ?). Если это шаблон, то для обработки выбирается каждый файл, чье имя удовлетворяет этому шаблону
-links n Для обработки выбираются все файлы, на каждый из которых имеется n или больше ссылок
-size n [с] Для обработки выбираются все файлы, размер которых равен или больше n 512-байтных блоков. Если к размеру добавлен символ с, то выбираются файлы, которые состоит из n или больше символов
-atime п Для обработки выбираются все файлы, к которым осуществлялся доступ за последние n-дней. Обратите внимание, что сама команда find осуществляет доступ к файлам, поэтому изменяет время последнего доступа к файлу
-print Эта наиболее часто используемая опция просто отображает имена всех найденных файлов
-exec cmd Для каждого файла, удовлетворяющего критериям поиска, выполняется команда Linux, принимающая в качестве параметра имя найденного файла. Для использования команды -exec необходимо запомнить два простых правила: в команде имя найденного файла представляется в {}, а команда должна заканчиваться последовательностью символов \;. Предположим, вы зарегистрировались как администратор и создали каталог, поэтому все файлы в этом каталоге принадлежат администратору. Чтобы сделать так, чтобы всеми файлами владел пользователь jack, необходимо выполнить команду: find /home/jack -exec chown jack {} \;

Команда find позволяет выполнять множество логических операций. Например, если необходимо выбрать все файлы, которые нельзя представить одним шаблоном, можно воспользоваться параметром or (-о):

find /home ( -name filel -o -name file2 ) –print

 

еще рефераты
Еще работы по информатике