Поиск файлов

Команда find ищет файлы по указанным критериям. Формат команды:

find опции места_поиска критерии модификаторы

Здесь места_поиска — каталоги, начиная с которых будет осуществлен по- иск. Поиск также производится и в подкаталогах, указанных в качестве мест поиска каталогов. По умолчанию имена найденных файлов печатаются на экране. Критериями поиска могут быть любые атрибуты файла, например, имя файла, его размер, владелец файла, тип, даты доступа, модификации и пр. Однако команда find не обеспечивает поиска файла по содержимому.

В командной строке find после тире указывают не только опции, но и крите- рии поиска, а также так называемые модификаторы. Критерии поиска ука- зывают, что искать, а модификаторы и опции — как искать и выводить най- денную информацию.

Наиболее часто используют следующие критерии:

r -name — поиск по имени файла или файловому шаблону;

r -iname — то же с игнорированием регистра;

r -type — поиск по типу файла;

r -size — для поиска по размеру или диапазону возможных размеров;

r -empty — поиск пустых файлов;

r -mtime — по дате модификации;

r -perm — поиск по правам доступа;

r -user и -group — по принадлежности файла.

Например, в текущем каталоге требуется найти все файлы, имя которых начинается со строки d1. Соответствующая команда поиска приведена в при- мере 4.17.

 

Пример 4.17. Поиск по имени файла

 

$ find . -name "d1*"

./d1

 

Обратите внимание, что если критерий поиска по подстроке в имени файла использует шаблоны подстановки, то такой шаблон должен быть экраниро- ван кавычками. В противном случае до исполнения команды оболочка за- менит шаблоны подходящими именами файлов, и команда будет работать неверно.


 

Можно ужесточить критерий поиска, потребовав от предыдущей команды отыскивать только каталоги с заданным именем (пример 4.18).

 

Пример 4.18. Поиск только каталогов по заданному имени

 

$ find . -name "d1*" -type d -ls

12042 0 drwxr-xr-x 2 user1 user1 192 Окт 7 21:58 ./d1

 

Более того, в последнем примере использован модификатор –ls команды find, позволяющий отображать информацию о найденных файлах в подроб- ном формате.

Если критерии поиска необходимо объединить по логическому условию ИЛИ, то следует использовать -o (пример 4.19).

 

Пример 4.19. Поиск по критериям, объединенным условием ИЛИ

 

$ find . -name "d1*" -o -empty

./d1

./d1/s

./d1/f1

./d1/f2

 

В этом примере продемонстрирован поиск по двум критериям, объединен- ным условием ИЛИ. Первый критерий — поиск файлов, начинающихся со строки d1, а второй — поиск пустых файлов (условие поиска -empty).

Для поиска файлов определенного типа необходимо задавать критерий

-type тип, где тип один из:

r b — файл блочного устройства;

r c — файл символьного устройства;

r d — каталог;

r f — обычный файл;

r p — именованный канал;

r s — сокет;

r l — символическая ссылка.

Имеется возможность исполнять команды с найденными find файлами. Для этого необходимо использовать модификатор –exec (пример 4.20).


 

Пример 4.20. Выполнение команд над найденными файлами

 

$find . -name "*core*" -exec rm –f {} \;

 

В примере 4.20 производится поиск и удаление всех файлов, имена которых содержат в себе строку "core". Смысл конструкции {} \; состоит в следую- щем: фигурные скобки будут заменены именами найденных файлов, которые и станут аргументами исполняемых команд. С помощью экранированной точки с запятой \; команду find информируют о том, где заканчивается команда, указанная после -exec.








Дата добавления: 2015-06-12; просмотров: 680;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.