Читаем Linux и UNIX: программирование в shell. Руководство разработчика полностью

Часто в процессе работы возникает необходимость осуществить поиск файлов с определенными характеристиками, такими как права доступа, размер, тип и т. д. Команда find представляет собой универсальный инструмент поиска: она позволяет искать файлы и каталоги, просматривать все каталоги в системе или только текущий каталог.

В этой главе рассматриваются следующие темы, связанные с применением команды find:

   • параметры команды find;

   • примеры использования различных опций команды find;

   • примеры совместного использования команд xargs и find .

Возможности команды find обширны, велик и список предлагаемых опций. В настоящей главе описаны наиболее важные из них. Команда find может проводить поиск даже на дисках NFS (Network File System -cетевая файловая система), конечно, при наличии соответствующих разрешений. В подобных случаях команда обычно выполняется в фоновом режиме, поскольку просмотр дерева каталогов требует значительных затрат времени.

Общий формат команды find таков:

find путевое_имя -oпции

где путевое_имя — это каталог, с которого необходимо начинать поиск. Символ '.' служит для обозначения текущего каталога, символ '/' — корневого каталога, а символ '~' — записанного в переменной $НОМЕ начального каталога текущего пользователя.

2.1. Опции команды find



Остановимся на описании основных опций команды find . Таблица 2.1. Основные опции команды find



-name

Поиск файлов, имена которых соответствуют заданному шаблону


-print

Запись полных имен найденных файлов в стандартный поток вывода


-perm

Поиск файлов, для которых установлен указанный режим доступа


-prune

Применяется для того, чтобы команда find не выполняла рекурсивный поиск по уже найденному путевому имени; если указана опция -depth, опция -prune игнорируется


-user

Поиск файлов, принадлежащих указанном пользователю


-group

Поиск файлов, которые принадлежат данной группе


-mtime -n +n

Поиск файлов, содержимое которых модифицировалось менее чем (-) или более чем (+) n дней назад; имеются также опции -atime и -ctime, которые позволяют осуществлять поиск файлов соответственно по дате последнего чтения и дате последнего изменения атрибутов файла


-nogroup

Поиск файлов, принадлежащих несуществующей группе, для которой, иначе говоря, отсутствует запись в файле /etc/groups


-nouser

Поиск файлов, принадлежащих несуществующему пользователю, для которого, другими словами, отсутствует запись в файле


/etc/passwd


-newer файл

Поиск файлов, которые созданы позднее, чем указанный файл


-type

Поиск файлов определенного типа, а именно:


b -cпециальный блочный файл;


d — каталог;


с -cпециальный символьный файл;


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


1 -cимволическая ссылка;


s -cокет;


f -oбычный файл


-size n

Поиск файлов, размер которых составляет n единиц; возможны


следующие единицы измерения:


b — блок размером 512 байтов (установка по умолчанию);


c — байт;


k — килобайт (1024 байта);


w — двухбайтовое слово


-depth

При поиске файлов сначала просматривается содержимое текущего каталога и лишь затем проверяется запись, соответствующая самому каталогу


-fstype

Поиск файлов, которые находятся в файловой системе определенного типа; обычно соответствующие сведения хранятся в файле /etc/fstab, который содержит данные о файловых системах, используемых на локальном компьютере


-mount

Поиск файлов только в текущей файловой системе; аналогом этой опции является опция -xdev


-exec

Выполнение команды интерпретатора shell для всех обнаруженных


файлов; выполняемые команды имеют формат


команда {} \;


(обратите внимание на наличие пробела между символами {} и


-ok

Аналогична опции -exec, но перед выполнением команды отображается запрос


2.1.1. Опция -name


При работе с командой find чаще всего используется опция -name. После нее в кавычках должен быть указан шаблон имени файла.

Если необходимо найти все файлы с расширением txt в вашем начальном каталоге, укажите символ '~' в качестве путевого имени. Имя начального каталога будет извлечено из переменной $номе.

$ find ~ -name "*.txt" — print

Чтобы найти все файлы с расширением txt, находящиеся в текущем каталоге, следует воспользоваться такой командой:

$ find . — name "*.txt" — print

Для нахождения в текущем каталоге всех файлов, в именах которых встречается хотя бы один символ в верхнем регистре, введите следующую команду:

$ find . — name "[A-Z]*" — print

Найти в каталоге /etc файлы, имена которых начинаются с символов "host", позволяет команда

$ find /etc -name "host*" — print

Поиск в начальном каталоге всех файлов с расширением txt, а также файлов, имена которых начинаются с точки, производит команда

$ find ~ -name "*.txt" — print -o -name ".*" — print

Опция -o является обозначением операции логического ИЛИ. В случае ее применения помимо файлов с обычными именами будут найдены файлы, имена которых начинаются с точки.

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

$ find / -name "*" — print

Перейти на страницу:

Похожие книги

Компьютер для тех, кому за…
Компьютер для тех, кому за…

В наш век высоких технологий без компьютера не обходится практически ни один человек. Но что делать, если вам уже за…, а компьютер вы так и не освоили? Не стоит отчаиваться! Эта книга была написана специально для тех, кто по каким-то причинам не смог освоить его раньше. Легким и доступным языком в книге изложены основные принципы работы на компьютере. Вы узнаете, как создать документ в текстовом редакторе, выстроить таблицы и диаграммы в экселе, освоите графический редактор, который позволит вам рисовать и редактировать фото и рисунки, научитесь самостоятельно подключать принтер и печать, общаться с родными и друзьями по скайпу и ICQ, узнаете, какие бывают игры, как выбрать игру для себя, и многое-многое другое.Никогда не поздно осваивать что-то новое! А уж тем более — компьютер. Он откроет вам целый мир безграничных возможностей. Не упустите свой шанс узнать что-то новое и интересное — дайте компьютеру прочно войти в вашу жизнь. Ведь пользоваться им так же просто, как и обычным телефоном, только в тысячу раз интереснее!

Оксана Грибова

Зарубежная компьютерная, околокомпьютерная литература / Интернет / Программное обеспечение / Прочая компьютерная литература / Книги по IT