FreeBSD - Утилиты find и xargs. man find на русском языке: различия между версиями

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
[[Файл:Hot11.png|link=https://bit.ly/3tbFsd6| Самые выгодные сервера? в рунете ]]
+
[[Файл:B_1.gif |link=https://bit.ly/3tbFsd6| Доступная цена]]
  
  
Строка 51: Строка 51:
 
Поиск дампов памяти имена которых помещаются в файл:
 
Поиск дампов памяти имена которых помещаются в файл:
 
  % find ~ -name "*core" -print | xargs echo > /etc/corelog.txt
 
  % find ~ -name "*core" -print | xargs echo > /etc/corelog.txt
 +
 +
 +
 +
----------------------------------
 +
 +
'''man find на русском языке'''
 +
 +
FIND(1)              Справочник основных команд FreeBSD              FIND(1) <br />
 +
НАЗВАНИЕ
 +
    find -- обход иерархии файлов <br />
 +
СИНТАКСИС
 +
    find [-H | -L | -P] [-EXdsx] [-f путь] путь ... выражение
 +
    find [-H | -L | -P] [-EXdsx] -f путь [путь ...] выражение <br />
 +
ОПИСАНИЕ
 +
    Утилита find рекурсивно спускается по дереву каталогов каждого пути, ука-
 +
    занного аргументами путь, вычисляя выражение (состоящее из перечисленных
 +
    ниже ``примитивов'' и ``операндов'') для каждого файла в дереве. <br />
 +
    Имеются следующие опции: <br />
 +
    -E      Интерпретировать регулярные выражения в примитивах -regex и
 +
            -iregex как расширенные (современные) регулярные выражения вместо
 +
            базовых регулярных выражений (BRE).  Страница справочника
 +
            re_format(7) полностью описывает оба формата.  <br />
 +
    -H      Возвращать информацию о файле и его типе (см. stat(2)) для фай-
 +
            лов, на которые указывают заданные в командной строке символиче-
 +
            ские ссылки, а не для самих ссылок.  Если файл, на который указы-
 +
            вает ссылка, не существует, информация о файле и его типе будет
 +
            возвращена для самой ссылки.  Информация о файлах для символиче-
 +
            ских ссылок не из командной строки будет возвращаться для самих
 +
            ссылок. <br />
 +
    -L      Возвращать информацию о файле и его типе (см. stat(2)) для фай-
 +
            лов, на которые указывают символические ссылки, а не для самих
 +
            ссылок.  Если файл, на который указывает ссылка, не существует,
 +
            информация о файле и его типе будет возвращена для самой ссылки. <br />
 +
            Эта опция эквивалентна устаревшему примитиву -follow. <br />
 +
    -P      Возвращать информацию о файле и его типе (см. stat(2)) для каждой
 +
            символической ссылки о самой ссылке.  Это поведение по умолчанию.  <br />
 +
    -X      Позволить безопасное использование find совместно с xargs(1).
 +
            Если имя файла содержит любой из символов-разделителей, использу-
 +
            емых xargs(1), вывести диагностическое сообщение в стандартный
 +
            файл ошибок и пропустить файл.  Символы-разделители включают в
 +
            себя одиночные (`` ' '') и двойные (`` " '') кавычки, обратную
 +
            косую черту (``\''), пробел, табуляцию и символ перевода строки. <br />
 +
            Однако вы можете использовать примитив -print0 совместно с
 +
            ``xargs -0'' как эффективную альтернативу.  <br />
 +
    -d      Заставить find производить обход сначала в глубину, т.е. каталоги
 +
            проходятся в пост-порядке, и все элементы каталога обрабатываются
 +
            перед самим каталогом.  По умолчанию, find проходит каталоги в
 +
            пред-порядке, т.е. перед их содержимым.  Следует отметить, что
 +
            этот режим по умолчанию не является обходом сначала в ширину. <br />
 +
            Эта опция эквивалентна примитиву -depth из IEEE Std 1003.1-2001
 +
            (``POSIX.1'').  Опция -d может быть полезной, когда find исполь-
 +
            зуется совместно с cpio(1) для обработки файлов в каталогах с
 +
            необычными правами доступа.  Она обеспечивает вам право на
 +
            запись, пока вы помещаете файлы в каталог, a затем, в последнюю
 +
            очередь, устанавливает права доступа каталога.  <br />
 +
    -f      Указать find файловую иерархию для обхода.  Файловые иерархии
 +
            также могут быть указаны как операнды непосредственно следом за
 +
            опциями. <br />
 +
    -s      Заставить find обходить файловые иерархии в лексикографическом
 +
            порядке, т.е. в алфавитном порядке в каждом каталоге.  Примеча-
 +
            ние: `find -s' и `find | sort' могут давать разные результаты. <br />
 +
    -x      Запретить find спускаться в каталоги, имеющие номер устройства,
 +
            отличный от такового у файла, с которого начался обход. <br />
 +
            Эта опция эквивалентна устаревшему примитиву -xdev. <br />
 +
ПРИМИТИВЫ
 +
    -Bmin n
 +
            Истинен, если разница между временем создания индексного дескрип-
 +
            тора (inode) файла и временем запуска find, округлённая до следу-
 +
            ющей полной минуты, равна n минут.  <br />
 +
    -Bnewer файл
 +
            То же, что и -newerBm. <br />
 +
    -Btime n[smhdw]
 +
            Если единицы времени не указаны, то этот примитив истинен, если
 +
            разница между временем создания индексного дескриптора (inode)
 +
            файла и временем запуска find, округлённая до следующего полного
 +
            24-часового периода, составляет n 24-часовых периодов. <br />
 +
            Если единицы времени указаны, то этот примитив истинен, если раз-
 +
            ница между временем создания индексного дескриптора (inode) файла
 +
            и временем запуска find в точности равна n единиц.  Обратитесь к
 +
            описанию примитива -atime для информации о поддерживаемых едини-
 +
            цах времени. <br />
 +
    -acl    Может быть использован совместно с другими примитивами для поиска
 +
            файлов с расширенными ACL.  Обратитесь к acl(3) для более подроб-
 +
            ной информации.  <br />
 +
    -amin n
 +
            Истинен, если разница между временем последнего доступа к файлу и
 +
            временем запуска find, округлённая до следующей полной минуты,
 +
            составляет n минут. <br />
 +
    -anewer файл
 +
            То же, что и -neweram. <br />
 +
    -atime n[smhdw]
 +
            Если единицы времени не указаны, то этот примитив истинен, если
 +
            разница между временем последнего доступа к файлу и временем
 +
            запуска find, округлённая до следующего полного 24-часового пери-
 +
            ода, составляет n 24-часовых периодов.  <br />
 +
            Если единицы времени указаны, то этот примитив истинен, если раз-
 +
            ница между временем последнего доступа к файлу и временем запуска
 +
            find в точности равна n единиц.  Допустимые единицы времени: <br />
 +
            s      секунда
 +
            m      минута (60 секунд)
 +
            h      час (60 минут)
 +
            d      день (24 часа)
 +
            w      неделя (7 дней) <br />
 +
            В одном аргументе -atime могут быть скомбинированы произвольные
 +
            единицы времени, например, ``-atime -1h30m''.  Единицы времени
 +
            скорее всего будут полезны только в сочетании с модификатором +
 +
            или -. <br />
 +
    -cmin n
 +
            Истинен, если разница между временем последнего изменения статус-
 +
            ной информации о файле и временем запуска find, округлённая до
 +
            следующей полной минуты, равна n минут.  <br />
 +
    -cnewer файл
 +
            То же, что и -newercm. <br />
 +
    -ctime n[smhdw]
 +
            Если единицы времени не указаны, то этот примитив истинен, если
 +
            разница между временем последнего изменения статусной информации
 +
            о файле и и временем запуска find, округлённая до следующего пол-
 +
            ного 24-часового периода, составляет n 24-часовых периодов. <br />
 +
            Если единицы времени указаны, то этот примитив истинен, если раз-
 +
            ница между временем последнего изменения статусной информации о
 +
            файле и временем запуска find в точности равна n единиц.  Обрати-
 +
            тесь к описанию примитива -atime для информации о поддерживаемых
 +
            единицах времени. <br />
 +
    -delete
 +
            Удалить найденные файлы и/или каталоги.  Всегда истинен.  Испол-
 +
            няется из текущего рабочего каталога, по мере рекурсивного про-
 +
            хода find вниз по дереву.  Исходя из соображений безопасности,
 +
            find не будет пытаться удалять файлы с символом ``/'' в пути
 +
            относительно ``.''.  Эта опция подразумевает обход сначала в глу-
 +
            бину. <br />
 +
    -depth  Всегда истинен; то же, что и опция -d.  <br />
 +
    -depth n
 +
            Истинен, если глубина файла относительно точки начала обхода
 +
            равна n. <br />
 +
    -empty  Истинен, если текущий файл или каталог пусты. <br />
 +
    -exec имя_программы [аргумент ...] ;
 +
            Истинен, если программа с именем имя_программы возвращает нулевое
 +
            значение в качестве статуса завершения.  Программе могут быть
 +
            переданы необязательные аргументы.  Выражение должно завершаться
 +
            точкой с запятой (``;'').  Если вы запускаете find из командной
 +
            оболочки (shell), вам может потребоваться экранировать точку с
 +
            запятой, поскольку в противном случае командная оболочка может
 +
            воспринять её как управляющий оператор.  Если где-либо в имени
 +
            программы или в аргументах появляется строка ``{}'', то она заме-
 +
            няется на путь текущего файла.  Программа будет запущена из ката-
 +
            лога, в котором был запущен find.  Аргументы имя_программы и
 +
            аргумент не подвержены дальнейшему раскрытию шаблонов и конструк-
 +
            ций командной оболочки. <br />
 +
    -exec имя_программы [аргумент ...] {} +
 +
            То же, что и -exec, за исключением того, что ``{}'' заменяется
 +
            максимально возможным количеством путей при каждом запуске ути-
 +
            литы.  Это поведение аналогично таковому у xargs(1). <br />
 +
    -execdir имя_программы [аргумент ...] ;
 +
            Примитив -execdir идентичен примитиву -exec за исключением того,
 +
            что программа с именем имя_программы будет запущена из каталога,
 +
            содержащего текущий файл.  Имя файла, подставляемого вместо
 +
            строки ``{}'', не содержит пути к нему. <br />
 +
    -flags [-|+]flags,notflags
 +
            Флаги задаются указанием символических имён (см. chflags(1)).  О
 +
            флагах с префиксом "no" (за исключением "nodump") говорят, что
 +
            это notflags (отрицания флагов).  Проверяется, что флаги в наборе
 +
            flags установлены, а флаги в наборе notflags сброшены.  Заметьте,
 +
            что это отличается от примитива -perm, позволяющего пользователю
 +
            указать лишь те биты, которые установлены. <br />
 +
            Если флагам предшествует минус (``-''), то этот примитив будет
 +
            истинным, если среди флагов файла установлены по крайней мере все
 +
            биты из набора flags и не установлен ни один бит из набора
 +
            notflags.  Если флагам предшествует плюс (``+''), то этот прими-
 +
            тив будет истинным, если среди флагов файла установлен любой из
 +
            битов набора flags, или не установлен любой из битов набора
 +
            notflags.  В противном случае, этот примитив будет истинным, если
 +
            биты в наборе flags в точности соответствуют флагам файла, и ни
 +
            один из битов набора flags не указан в наборе notflags. <br />
 +
    -fstype тип
 +
            Истинен, если файл содержится в файловой системе типа тип.  Для
 +
            получения доступных в системе типов файловых систем можно вос-
 +
            пользоваться командой sysctl(8): <br />
 +
                  sysctl vfs <br />
 +
            Кроме того, имеются два псевдо-типа, ``local'' и ``rdonly''.
 +
            Первый задаёт любую файловую систему, физически смонтированную на
 +
            машине, где запускается find, а второй обозначает любую файловую
 +
            систему, смонтированную только для чтения. <br />
 +
    -group имя_группы
 +
            Истинен, если файл принадлежит группе с именем имя_группы.  Если
 +
            аргумент имя_группы задан в числовом виде, и не существует такого
 +
            имени группы, то аргумент имя_группы трактуется как идентификатор
 +
            группы (group ID). <br />
 +
    -iname шаблон
 +
            Подобен -name, но сравнение не учитывает регистр. <br />
 +
    -inum номер
 +
            Истинен, если номер индексного дескриптора (inode) файла равен
 +
            номер. <br />
 +
    -ipath шаблон
 +
            Подобен -path, но сравнение не учитывает регистр. <br />
 +
    -iregex шаблон
 +
            Подобен -regex, но сравнение не учитывает регистр. <br />
 +
    -links n
 +
            Истинен, если файл имеет n жёстких связей. <br />
 +
    -ls    Этот примитив всегда истинен.  Для текущего файла в стандартный
 +
            вывод пишется следующая информация: номер индексного дескриптора
 +
            (inode), размер в 512-байтных блоках, права доступа к файлу,
 +
            число жёстких связей (hard links), владелец, группа, размер в
 +
            байтах, время последнего изменения и путь.  Если файл представ-
 +
            ляет собой специальный файл блочного или символьного устройства,
 +
            вместо размера выводятся старший (major) и младший (minor) номера
 +
            устройства.  Если файл является символической ссылкой, то после
 +
            знака ``->'' будет также выведен путь к указываемому файлу.  Этот
 +
            формат идентичен используемому в ``ls -dgils''. <br />
 +
    -maxdepth n
 +
            Всегда истинен; заставляет спускаться не более чем на n уровней
 +
            каталогов ниже аргументов командной строки.  Если присутствует
 +
            примитив -maxdepth, он применяется ко всему выражению, даже если
 +
            в нормальных условиях он бы не вычислялся.  ``-maxdepth 0'' огра-
 +
            ничивает весь поиск исключительно аргументами командной строки.  <br />
 +
    -mindepth n
 +
            Всегда истинен; не применять любые тесты или действия на уровнях
 +
            меньше n.  Если присутствует примитив -mindepth, он применяется
 +
            ко всему выражению, даже если в нормальных условиях он бы не
 +
            вычислялся.  ``-mindepth 1'' обрабатывает всё, кроме аргументов
 +
            командной строки. <br />
 +
    -mmin n
 +
            Истинен, если разница между временем последнего изменения файла и
 +
            временем запуска find, округлённая до следующей полной минуты,
 +
            равна n минут. <br />
 +
    -mnewer файл
 +
            То же, что и -newer. <br />
 +
    -mtime n[smhdw]
 +
            Если единицы времени не указаны, то этот примитив истинен, если
 +
            разница между временем последнего изменения файла и временем
 +
            запуска find, округлённая до следующего полного 24-часового пери-
 +
            ода, составляет n 24-часовых периодов. <br />
 +
            Если единицы времени указаны, то этот примитив истинен, если раз-
 +
            ница между временем последнего изменения файла и временем запуска
 +
            find в точности равна n единиц.  Обратитесь к описанию примитива
 +
            -atime для информации о поддерживаемых единицах времени.  <br />
 +
    -name шаблон
 +
            Истинен, если последний компонент пути файла (его имя) подпадает
 +
            под шаблон.  В шаблоне могут быть использованы специальные
 +
            шаблонные символы командной оболочки (``['', ``]'', ``*'', и
 +
            ``?'').  Эти символы могут быть заданы для проверки на совпадение
 +
            явным образом с помощью экранирования их символом обратной косой
 +
            черты (``\''). <br />
 +
    -newer файл
 +
            Истинен, если текущий файл имеет более позднее время последнего
 +
            изменения, чем файл. <br />
 +
    -newerXY файл
 +
            Истинен, если текущий файл имеет более позднее время последнего
 +
            доступа (X=a), время создания индексного дескриптора (inode),
 +
            т.е. самого файла (X=B), время последнего изменения индексного
 +
            дескриптора (X=c) или время последнего изменения файла (X=m),
 +
            нежели время последнего доступа (Y=a), время создания индексного
 +
            дескриптора (Y=B), время изменения индексного дескриптора (Y=c)
 +
            или время изменения (Y=m) файла файл.  Кроме того, если Y=t, то
 +
            аргумент файл будет интерпретирован не как файл, а как непосред-
 +
            ственное указание даты в форме, понятной cvs(1).  Можно заметить,
 +
            что использование -newermm эквивалентно использованию -newer.  <br />
 +
    -nogroup
 +
            Истинен, если файл принадлежит неизвестной группе. <br />
 +
    -nouser
 +
            Истинен, если файл принадлежит неизвестному пользователю. <br />
 +
    -ok имя_программы [аргумент ...] ;
 +
            Примитив -ok идентичен примитиву -exec, за исключением того, что
 +
            find запросит у пользователя подтверждение на выполнение про-
 +
            граммы с именем имя_программы выводом сообщения на терминал и
 +
            ожиданием ответа.  Если ответ не был утвердительным (`y' в локали
 +
            (locale) ``POSIX''), команда не исполняется, и значение примитива
 +
            -ok будет ложным. <br />
 +
    -okdir имя_программы [аргумент ...] ;
 +
            Примитив -okdir идентичен примитиву -execdir, с тем же исключе-
 +
            нием, что было описано для примитива -ok. <br />
 +
    -path шаблон
 +
            Истинен, если рассматриваемый путь подпадает под шаблон.  В
 +
            шаблоне можно использовать специальные шаблонные символы команд-
 +
            ной оболочки (``['', ``]'', ``*'', и ``?'').  Эти символы могут
 +
            быть заданы для проверки на совпадение явным образом с помощью
 +
            экранирования их символом обратной косой черты (``\'').  Прямая
 +
            косая черта (``/'') рассматривается как обычный символ и не тре-
 +
            бует явного указания для совпадения. <br />
 +
    -perm [-|+]режим
 +
            Права доступа в аргументе режим могут быть заданы либо символиче-
 +
            ски (см. chmod(1)), либо восьмеричным числом.  Если режим задан
 +
            символически, стартовым значением полагается ноль, и режим уста-
 +
            навливает или сбрасывает права без учёта маски создания файлов
 +
            процесса.  Если режим задан восьмеричным числом, то только биты
 +
            07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO)
 +
            участвуют в сравнении с правами доступа файла.  Если перед аргу-
 +
            ментом режим указан минус (``-''), то этот примитив будет истин-
 +
            ным, если по крайней мере все биты в аргументе режим установлены
 +
            в правах доступа файла.  Если перед аргументом режим указан плюс
 +
            (``+''), то этот примитив будет истинным, если любой из битов в
 +
            аргументе режим установлен в правах доступа файла.  В противном
 +
            случае, этот примитив будет истинным только при точном совпадении
 +
            битов в аргументе режим с правами доступа текущего файла.  Обра-
 +
            тите внимание, что минус (``-'') не может быть первым символом
 +
            при символическом задании прав. <br />
 +
    -print  Этот примитив всегда истинен.  Он выводит путь текущего файла в
 +
            стандартный вывод.  Если не указан ни один из примитивов -exec,
 +
            -ls, -print0 или -ok, то заданное выражение фактически будет
 +
            заменено на ( заданное выражение ) -print. <br />
 +
    -print0
 +
            Этот примитив всегда истинен.  Он выводит путь текущего файла в
 +
            стандартный вывод, и следом за ним символ ASCII NUL (символ с
 +
            кодом 0). <br />
 +
    -prune  Этот примитив всегда истинен.  Он заставляет find не спускаться в
 +
            текущий файл.  Необходимо отметить, что примитив -prune не дей-
 +
            ствует при указании опции -d. <br />
 +
    -regex шаблон
 +
            Истинен, если полный путь файла подпадает под регулярное выраже-
 +
            ние шаблон.  Для задания файла, именуемого ``./foo/xyzzy'', можно
 +
            использовать регулярные выражения ``.*/[xyz]*'' или
 +
            ``.*/foo/.*'', но не ``xyzzy'' и не ``/foo/''. <br />
 +
    -size n[ckMGTP]
 +
            Истинен, если размер файла в 512-байтных блоках, при округлении
 +
            вверх, равен n.  Если за n следует c, то примитив будет истинным,
 +
            если размер файла равен n байт (символов).  Аналогично, если за n
 +
            следует буква множителя, тогда размер файла сравнивается с n,
 +
            помноженным на одно из следующих: <br />
 +
            k      килобайт (1024 байта)
 +
            M      мегабайт (1024 килобайта)
 +
            G      гигабайт (1024 мегабайта)
 +
            T      терабайт (1024 гигабайта)
 +
            P      петабайт (1024 терабайта) <br />
 +
    -type тип
 +
            Истинен, если типом текущего файла является тип.  Возможные типы
 +
            файлов: <br />
 +
            b      блочный специальный
 +
            c      символьный специальный
 +
            d      каталог
 +
            f      обычный файл
 +
            l      символическая ссылка
 +
            p      именованный канал (FIFO)
 +
            s      сокет <br />
 +
    -user имя_пользователя
 +
            Истинен, если файл принадлежит пользователю с именем
 +
            имя_пользователя.  Если имя_пользователя задано в числовом виде и
 +
            такого имени пользователя не существует, то аргумент
 +
            имя_пользователя трактуется как идентификатор пользователя (user
 +
            ID). <br />
 +
    Все примитивы, принимающие числовой аргумент, допускают задание этого
 +
    числа со знаком плюс (``+'') или минус (``-'').  Предшествующий плюс
 +
    означает ``больше n'', предшествующий минус означает ``меньше n'', а
 +
    отсутствие знака -- ``ровно n''. <br />
 +
ОПЕРАТОРЫ
 +
    Примитивы могут комбинироваться с использованием нижеследующих операто-
 +
    ров.  Операторы перечислены в порядке понижения приоритета. <br />
 +
    ( выражение )
 +
            Будет истинным, если истинно выражение в скобках. <br />
 +
    ! выражение
 +
    -false выражение
 +
    -not выражение
 +
            Это унарный оператор НЕ.  Он будет истинным, если выражение
 +
            ложно. <br />
 +
    выражение -and выражение
 +
    выражение выражение
 +
            Оператор -and есть логический оператор И.  Поскольку он подразу-
 +
            мевается непосредственным соседством двух выражений, его не тре-
 +
            буется указывать явно.  Выражение истинно, если оба выражения
 +
            истинны.  Второе выражение не вычисляется, если первое выражение
 +
            ложно. <br />
 +
    выражение -or выражение <br />
 +
            Оператор -or есть логический оператор ИЛИ.  Выражение истинно,
 +
            если любое из двух выражений истинно.  Второе выражение не вычис-
 +
            ляется, если первое выражение истинно. <br />
 +
    Все операнды и примитивы должны быть отдельными аргументами find.  Прими-
 +
    тивы, имеющие собственные аргументы, ожидают их как  отдельные аргументы
 +
    find. <br />
 +
ОКРУЖЕНИЕ
 +
    Переменные окружения LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES и
 +
    LC_TIME влияют на выполнение утилиты find, как описано в environ(7).  <br />
 +
ПРИМЕРЫ
 +
    Нижеследующие примеры показаны в виде, принимаемом командной оболочкой: <br />
 +
    find / \! -name "*.c" -print
 +
            Вывести список всех файлов, имена которых не заканчиваются на .c. <br />
 +
    find / -newer ttt -user wnj -print
 +
            Вывести список всех файлов, принадлежащих пользователю ``wnj'',
 +
            которые изменены позднее файла ttt. <br />
 +
    find / \! \( -newer ttt -user wnj \) -print
 +
            Вывести список всех файлов, которые изменены не позднее файла ttt
 +
            и одновременно не принадлежат пользователю ``wnj''. <br />
 +
    find / \( -newer ttt -or -user wnj \) -print
 +
            Вывести список всех файлов, которые принадлежат пользователю
 +
            ``wnj'' или изменены позднее файла ttt. <br />
 +
    find / -newerct '1 minute ago' -print
 +
            Вывести список всех файлов, индексный дескриптор которых был
 +
            изменён не позднее одной минуты назад. <br />
 +
    find / -type f -exec echo {} \;
 +
            Использовать команду echo(1) для вывода списка всех файлов. <br />
 +
    find -L /usr/ports/packages -type l -delete
 +
            Удалить все битые символические ссылки в /usr/ports/packages. <br />
 +
    find /usr/src -name CVS -prune -o -depth +6 -print
 +
            Найти файлы и каталоги, имеющие по крайней мере семь уровней вло-
 +
            женности в рабочем каталоге /usr/src. <br />
 +
    find /usr/src -name CVS -prune -o -mindepth 7 -print
 +
            Это не эквивалентно предыдущему примеру, поскольку -prune не
 +
            выполняется ниже уровня семь. <br />
 +
СОВМЕСТИМОСТЬ
 +
    Примитив -follow устарел; вместо него рекомендуется использовать опцию
 +
    -L.  Подробнее об этом смотрите ниже, в разделе СТАНДАРТЫ. <br />
 +
СМОТРИ ТАКЖЕ
 +
    chflags(1), chmod(1), cvs(1), locate(1), whereis(1), which(1), xargs(1),
 +
    stat(2), acl(3), fts(3), getgrent(3), getpwent(3), strmode(3),
 +
    re_format(7), symlink(7) <br />
 +
СТАНДАРТЫ
 +
    Синтаксис утилиты find представляет собой надмножество синтаксиса, опи-
 +
    санного в стандарте IEEE Std 1003.1-2001 (``POSIX.1''). <br />
 +
    Все однобуквенные опции, кроме -H и -L, а также -amin, -anewer, -cmin,
 +
    -cnewer, -delete, -empty, -fstype, -iname, -inum, -iregex, -ls,
 +
    -maxdepth, -mindepth, -mmin, -path, -print0, -regex и все связанные с
 +
    временем создания примитивы -B*, представляют собой расширения к стан-
 +
    дарту IEEE Std 1003.1-2001 (``POSIX.1''). <br />
 +
    Исторически, опции -d, -L и -x были реализованы через примитивы -depth,
 +
    -follow и -xdev.  Эти примитивы были всегда истинны.  Поскольку они фак-
 +
    тически были глобальными переменными, вступающими в силу до начала
 +
    обхода, некоторые допустимые выражения могли иметь неожиданные резуль-
 +
    таты, например, -print -o -depth.  Поскольку -print всегда истинен, стан-
 +
    дартный порядок вычислений подразумевает, что -depth никогда не выпол-
 +
    нится, что в действительности не так. <br />
 +
    Оператор -or был реализован как -o, а оператор -and был реализован как
 +
    -a. <br />
 +
    Исторические реализации примитивов -exec и -ok не заменяли строку ``{}''
 +
    в имени утилиты и её аргументах, если сразу перед этой строкой или сразу
 +
    после неё были непробельные символы.  Эта версия заменяет её в любом
 +
    месте в имени утилиты и её аргументах, где бы она ни встретилась. <br />
 +
    Опция -E была навеяна одноимённой опцией grep(1) и sed(1). <br />
 +
ИСТОРИЯ
 +
    Команда find появилась в Version 1 AT&T UNIX. <br />
 +
ПРОБЛЕМЫ
 +
    Специальные символы, используемые find, являются также специальными сим-
 +
    волами для многих командных оболочек.  В частности, может потребоваться
 +
    экранировать от командной оболочки символы ``*'', ``['', ``]'', ``?'',
 +
    ``('', ``)'', ``!'', ``\'' и ``;''. <br />
 +
    Поскольку не существует разделителей, отделяющих опции от имён файлов или
 +
    имена файлов от выражений, трудно задать файлы с именами типа -xdev или
 +
    !.  Эти проблемы решаются опцией -f и конструкцией ``--'' для getopt(3). <br />
 +
    Примитив -delete плохо взаимодействует с другими опциями, меняющими поря-
 +
    док обхода дерева файловой системы. <br />
 +
    Примитивы -mindepth и -maxdepth фактически являются глобальными опциями
 +
    (как документировано выше).  Они, по-видимому, должны быть заменены опци-
 +
    ями, выглядящими как опции. <br />
 +
FreeBSD 7.2                    13 декабря 2006                    FreeBSD 7.2

Текущая версия на 18:04, 29 августа 2017

Доступная цена


FreeBSD - Утилиты find и xargs. man find на русском языке

Опция -name

% find ~ -name "[A-Z]*" -print
% find ~ -name "[A-Z]*" -print -o -name ".*" -print
-o - логическое ИЛИ

Опция -perm

% find ~ perm 755 -print


Опция -user и -nouser
Удалить те файлы, владелец которых nobody:

% find . -user nobody -print -exec rm {} \;

Поиск файлов, которые принадлежат пользователей которых нет в /etc/passwd

% find / -nouser -print

Опция -group и -nogroup, аналогично -user и -nouser ищет файлы которые принадлежат группе пользователей или несуществующей группе.

% find /usr/local/www/nginx/ -group www -print

Опция -mtime(когда был осуществлен доступ к файлу)

- указывается в днях
% find  /root -mtime -3 -print
% find  /root -mtime +3 -print
-  - не обновлялись 3 дня(не осуществлялся доступ)
+  - обновлялись 3 дня(осуществлялся доступ)

Опция -newer (нахождение файлов, которые обновлялись позже чем старый файл, но раньше чем новый файл)

% find / -newer oldfile ! newfile -exex ls -l {} \;

(ММДДччмм)

% touch -t 12272130 filestamp

Если сейчас 23-30, то

% find / -newer filestamp -print

ищет все файлы которые обновлялись в течении последних 2-х часов

Опция -type

% find / ! -type d -print


Опция xargs (если при -exec пишет Too many arguments)

% find / -type f -print | xargs file

Поиск дампов памяти имена которых помещаются в файл:

% find ~ -name "*core" -print | xargs echo > /etc/corelog.txt



man find на русском языке

FIND(1)               Справочник основных команд FreeBSD               FIND(1) 
НАЗВАНИЕ find -- обход иерархии файлов
СИНТАКСИС find [-H | -L | -P] [-EXdsx] [-f путь] путь ... выражение find [-H | -L | -P] [-EXdsx] -f путь [путь ...] выражение
ОПИСАНИЕ Утилита find рекурсивно спускается по дереву каталогов каждого пути, ука- занного аргументами путь, вычисляя выражение (состоящее из перечисленных ниже ``примитивов и ``операндов) для каждого файла в дереве.
Имеются следующие опции:
-E Интерпретировать регулярные выражения в примитивах -regex и -iregex как расширенные (современные) регулярные выражения вместо базовых регулярных выражений (BRE). Страница справочника re_format(7) полностью описывает оба формата.
-H Возвращать информацию о файле и его типе (см. stat(2)) для фай- лов, на которые указывают заданные в командной строке символиче- ские ссылки, а не для самих ссылок. Если файл, на который указы- вает ссылка, не существует, информация о файле и его типе будет возвращена для самой ссылки. Информация о файлах для символиче- ских ссылок не из командной строки будет возвращаться для самих ссылок.
-L Возвращать информацию о файле и его типе (см. stat(2)) для фай- лов, на которые указывают символические ссылки, а не для самих ссылок. Если файл, на который указывает ссылка, не существует, информация о файле и его типе будет возвращена для самой ссылки.
Эта опция эквивалентна устаревшему примитиву -follow.
-P Возвращать информацию о файле и его типе (см. stat(2)) для каждой символической ссылки о самой ссылке. Это поведение по умолчанию.
-X Позволить безопасное использование find совместно с xargs(1). Если имя файла содержит любой из символов-разделителей, использу- емых xargs(1), вывести диагностическое сообщение в стандартный файл ошибок и пропустить файл. Символы-разделители включают в себя одиночные (`` ' ) и двойные (`` " ) кавычки, обратную косую черту (``\), пробел, табуляцию и символ перевода строки.
Однако вы можете использовать примитив -print0 совместно с ``xargs -0 как эффективную альтернативу.
-d Заставить find производить обход сначала в глубину, т.е. каталоги проходятся в пост-порядке, и все элементы каталога обрабатываются перед самим каталогом. По умолчанию, find проходит каталоги в пред-порядке, т.е. перед их содержимым. Следует отметить, что этот режим по умолчанию не является обходом сначала в ширину.
Эта опция эквивалентна примитиву -depth из IEEE Std 1003.1-2001 (``POSIX.1). Опция -d может быть полезной, когда find исполь- зуется совместно с cpio(1) для обработки файлов в каталогах с необычными правами доступа. Она обеспечивает вам право на запись, пока вы помещаете файлы в каталог, a затем, в последнюю очередь, устанавливает права доступа каталога.
-f Указать find файловую иерархию для обхода. Файловые иерархии также могут быть указаны как операнды непосредственно следом за опциями.
-s Заставить find обходить файловые иерархии в лексикографическом порядке, т.е. в алфавитном порядке в каждом каталоге. Примеча- ние: `find -s' и `find | sort' могут давать разные результаты.
-x Запретить find спускаться в каталоги, имеющие номер устройства, отличный от такового у файла, с которого начался обход.
Эта опция эквивалентна устаревшему примитиву -xdev.
ПРИМИТИВЫ -Bmin n Истинен, если разница между временем создания индексного дескрип- тора (inode) файла и временем запуска find, округлённая до следу- ющей полной минуты, равна n минут.
-Bnewer файл То же, что и -newerBm.
-Btime n[smhdw] Если единицы времени не указаны, то этот примитив истинен, если разница между временем создания индексного дескриптора (inode) файла и временем запуска find, округлённая до следующего полного 24-часового периода, составляет n 24-часовых периодов.
Если единицы времени указаны, то этот примитив истинен, если раз- ница между временем создания индексного дескриптора (inode) файла и временем запуска find в точности равна n единиц. Обратитесь к описанию примитива -atime для информации о поддерживаемых едини- цах времени.
-acl Может быть использован совместно с другими примитивами для поиска файлов с расширенными ACL. Обратитесь к acl(3) для более подроб- ной информации.
-amin n Истинен, если разница между временем последнего доступа к файлу и временем запуска find, округлённая до следующей полной минуты, составляет n минут.
-anewer файл То же, что и -neweram.
-atime n[smhdw] Если единицы времени не указаны, то этот примитив истинен, если разница между временем последнего доступа к файлу и временем запуска find, округлённая до следующего полного 24-часового пери- ода, составляет n 24-часовых периодов.
Если единицы времени указаны, то этот примитив истинен, если раз- ница между временем последнего доступа к файлу и временем запуска find в точности равна n единиц. Допустимые единицы времени:
s секунда m минута (60 секунд) h час (60 минут) d день (24 часа) w неделя (7 дней)
В одном аргументе -atime могут быть скомбинированы произвольные единицы времени, например, ``-atime -1h30m. Единицы времени скорее всего будут полезны только в сочетании с модификатором + или -.
-cmin n Истинен, если разница между временем последнего изменения статус- ной информации о файле и временем запуска find, округлённая до следующей полной минуты, равна n минут.
-cnewer файл То же, что и -newercm.
-ctime n[smhdw] Если единицы времени не указаны, то этот примитив истинен, если разница между временем последнего изменения статусной информации о файле и и временем запуска find, округлённая до следующего пол- ного 24-часового периода, составляет n 24-часовых периодов.
Если единицы времени указаны, то этот примитив истинен, если раз- ница между временем последнего изменения статусной информации о файле и временем запуска find в точности равна n единиц. Обрати- тесь к описанию примитива -atime для информации о поддерживаемых единицах времени.
-delete Удалить найденные файлы и/или каталоги. Всегда истинен. Испол- няется из текущего рабочего каталога, по мере рекурсивного про- хода find вниз по дереву. Исходя из соображений безопасности, find не будет пытаться удалять файлы с символом ``/ в пути относительно ``.. Эта опция подразумевает обход сначала в глу- бину.
-depth Всегда истинен; то же, что и опция -d.
-depth n Истинен, если глубина файла относительно точки начала обхода равна n.
-empty Истинен, если текущий файл или каталог пусты.
-exec имя_программы [аргумент ...] ; Истинен, если программа с именем имя_программы возвращает нулевое значение в качестве статуса завершения. Программе могут быть переданы необязательные аргументы. Выражение должно завершаться точкой с запятой (``;). Если вы запускаете find из командной оболочки (shell), вам может потребоваться экранировать точку с запятой, поскольку в противном случае командная оболочка может воспринять её как управляющий оператор. Если где-либо в имени программы или в аргументах появляется строка ``{}, то она заме- няется на путь текущего файла. Программа будет запущена из ката- лога, в котором был запущен find. Аргументы имя_программы и аргумент не подвержены дальнейшему раскрытию шаблонов и конструк- ций командной оболочки.
-exec имя_программы [аргумент ...] {} + То же, что и -exec, за исключением того, что ``{} заменяется максимально возможным количеством путей при каждом запуске ути- литы. Это поведение аналогично таковому у xargs(1).
-execdir имя_программы [аргумент ...] ; Примитив -execdir идентичен примитиву -exec за исключением того, что программа с именем имя_программы будет запущена из каталога, содержащего текущий файл. Имя файла, подставляемого вместо строки ``{}, не содержит пути к нему.
-flags [-|+]flags,notflags Флаги задаются указанием символических имён (см. chflags(1)). О флагах с префиксом "no" (за исключением "nodump") говорят, что это notflags (отрицания флагов). Проверяется, что флаги в наборе flags установлены, а флаги в наборе notflags сброшены. Заметьте, что это отличается от примитива -perm, позволяющего пользователю указать лишь те биты, которые установлены.
Если флагам предшествует минус (``-), то этот примитив будет истинным, если среди флагов файла установлены по крайней мере все биты из набора flags и не установлен ни один бит из набора notflags. Если флагам предшествует плюс (``+), то этот прими- тив будет истинным, если среди флагов файла установлен любой из битов набора flags, или не установлен любой из битов набора notflags. В противном случае, этот примитив будет истинным, если биты в наборе flags в точности соответствуют флагам файла, и ни один из битов набора flags не указан в наборе notflags.
-fstype тип Истинен, если файл содержится в файловой системе типа тип. Для получения доступных в системе типов файловых систем можно вос- пользоваться командой sysctl(8):
sysctl vfs
Кроме того, имеются два псевдо-типа, ``local и ``rdonly. Первый задаёт любую файловую систему, физически смонтированную на машине, где запускается find, а второй обозначает любую файловую систему, смонтированную только для чтения.
-group имя_группы Истинен, если файл принадлежит группе с именем имя_группы. Если аргумент имя_группы задан в числовом виде, и не существует такого имени группы, то аргумент имя_группы трактуется как идентификатор группы (group ID).
-iname шаблон Подобен -name, но сравнение не учитывает регистр.
-inum номер Истинен, если номер индексного дескриптора (inode) файла равен номер.
-ipath шаблон Подобен -path, но сравнение не учитывает регистр.
-iregex шаблон Подобен -regex, но сравнение не учитывает регистр.
-links n Истинен, если файл имеет n жёстких связей.
-ls Этот примитив всегда истинен. Для текущего файла в стандартный вывод пишется следующая информация: номер индексного дескриптора (inode), размер в 512-байтных блоках, права доступа к файлу, число жёстких связей (hard links), владелец, группа, размер в байтах, время последнего изменения и путь. Если файл представ- ляет собой специальный файл блочного или символьного устройства, вместо размера выводятся старший (major) и младший (minor) номера устройства. Если файл является символической ссылкой, то после знака ``-> будет также выведен путь к указываемому файлу. Этот формат идентичен используемому в ``ls -dgils.
-maxdepth n Всегда истинен; заставляет спускаться не более чем на n уровней каталогов ниже аргументов командной строки. Если присутствует примитив -maxdepth, он применяется ко всему выражению, даже если в нормальных условиях он бы не вычислялся. ``-maxdepth 0 огра- ничивает весь поиск исключительно аргументами командной строки.
-mindepth n Всегда истинен; не применять любые тесты или действия на уровнях меньше n. Если присутствует примитив -mindepth, он применяется ко всему выражению, даже если в нормальных условиях он бы не вычислялся. ``-mindepth 1 обрабатывает всё, кроме аргументов командной строки.
-mmin n Истинен, если разница между временем последнего изменения файла и временем запуска find, округлённая до следующей полной минуты, равна n минут.
-mnewer файл То же, что и -newer.
-mtime n[smhdw] Если единицы времени не указаны, то этот примитив истинен, если разница между временем последнего изменения файла и временем запуска find, округлённая до следующего полного 24-часового пери- ода, составляет n 24-часовых периодов.
Если единицы времени указаны, то этот примитив истинен, если раз- ница между временем последнего изменения файла и временем запуска find в точности равна n единиц. Обратитесь к описанию примитива -atime для информации о поддерживаемых единицах времени.
-name шаблон Истинен, если последний компонент пути файла (его имя) подпадает под шаблон. В шаблоне могут быть использованы специальные шаблонные символы командной оболочки (``[, ``], ``*, и ``?). Эти символы могут быть заданы для проверки на совпадение явным образом с помощью экранирования их символом обратной косой черты (``\).
-newer файл Истинен, если текущий файл имеет более позднее время последнего изменения, чем файл.
-newerXY файл Истинен, если текущий файл имеет более позднее время последнего доступа (X=a), время создания индексного дескриптора (inode), т.е. самого файла (X=B), время последнего изменения индексного дескриптора (X=c) или время последнего изменения файла (X=m), нежели время последнего доступа (Y=a), время создания индексного дескриптора (Y=B), время изменения индексного дескриптора (Y=c) или время изменения (Y=m) файла файл. Кроме того, если Y=t, то аргумент файл будет интерпретирован не как файл, а как непосред- ственное указание даты в форме, понятной cvs(1). Можно заметить, что использование -newermm эквивалентно использованию -newer.
-nogroup Истинен, если файл принадлежит неизвестной группе.
-nouser Истинен, если файл принадлежит неизвестному пользователю.
-ok имя_программы [аргумент ...] ; Примитив -ok идентичен примитиву -exec, за исключением того, что find запросит у пользователя подтверждение на выполнение про- граммы с именем имя_программы выводом сообщения на терминал и ожиданием ответа. Если ответ не был утвердительным (`y' в локали (locale) ``POSIX), команда не исполняется, и значение примитива -ok будет ложным.
-okdir имя_программы [аргумент ...] ; Примитив -okdir идентичен примитиву -execdir, с тем же исключе- нием, что было описано для примитива -ok.
-path шаблон Истинен, если рассматриваемый путь подпадает под шаблон. В шаблоне можно использовать специальные шаблонные символы команд- ной оболочки (``[, ``], ``*, и ``?). Эти символы могут быть заданы для проверки на совпадение явным образом с помощью экранирования их символом обратной косой черты (``\). Прямая косая черта (``/) рассматривается как обычный символ и не тре- бует явного указания для совпадения.
-perm [-|+]режим Права доступа в аргументе режим могут быть заданы либо символиче- ски (см. chmod(1)), либо восьмеричным числом. Если режим задан символически, стартовым значением полагается ноль, и режим уста- навливает или сбрасывает права без учёта маски создания файлов процесса. Если режим задан восьмеричным числом, то только биты 07777 (S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO) участвуют в сравнении с правами доступа файла. Если перед аргу- ментом режим указан минус (``-), то этот примитив будет истин- ным, если по крайней мере все биты в аргументе режим установлены в правах доступа файла. Если перед аргументом режим указан плюс (``+), то этот примитив будет истинным, если любой из битов в аргументе режим установлен в правах доступа файла. В противном случае, этот примитив будет истинным только при точном совпадении битов в аргументе режим с правами доступа текущего файла. Обра- тите внимание, что минус (``-) не может быть первым символом при символическом задании прав.
-print Этот примитив всегда истинен. Он выводит путь текущего файла в стандартный вывод. Если не указан ни один из примитивов -exec, -ls, -print0 или -ok, то заданное выражение фактически будет заменено на ( заданное выражение ) -print.
-print0 Этот примитив всегда истинен. Он выводит путь текущего файла в стандартный вывод, и следом за ним символ ASCII NUL (символ с кодом 0).
-prune Этот примитив всегда истинен. Он заставляет find не спускаться в текущий файл. Необходимо отметить, что примитив -prune не дей- ствует при указании опции -d.
-regex шаблон Истинен, если полный путь файла подпадает под регулярное выраже- ние шаблон. Для задания файла, именуемого ``./foo/xyzzy, можно использовать регулярные выражения ``.*/[xyz]* или ``.*/foo/.*, но не ``xyzzy и не ``/foo/.
-size n[ckMGTP] Истинен, если размер файла в 512-байтных блоках, при округлении вверх, равен n. Если за n следует c, то примитив будет истинным, если размер файла равен n байт (символов). Аналогично, если за n следует буква множителя, тогда размер файла сравнивается с n, помноженным на одно из следующих:
k килобайт (1024 байта) M мегабайт (1024 килобайта) G гигабайт (1024 мегабайта) T терабайт (1024 гигабайта) P петабайт (1024 терабайта)
-type тип Истинен, если типом текущего файла является тип. Возможные типы файлов:
b блочный специальный c символьный специальный d каталог f обычный файл l символическая ссылка p именованный канал (FIFO) s сокет
-user имя_пользователя Истинен, если файл принадлежит пользователю с именем имя_пользователя. Если имя_пользователя задано в числовом виде и такого имени пользователя не существует, то аргумент имя_пользователя трактуется как идентификатор пользователя (user ID).
Все примитивы, принимающие числовой аргумент, допускают задание этого числа со знаком плюс (``+) или минус (``-). Предшествующий плюс означает ``больше n, предшествующий минус означает ``меньше n, а отсутствие знака -- ``ровно n.
ОПЕРАТОРЫ Примитивы могут комбинироваться с использованием нижеследующих операто- ров. Операторы перечислены в порядке понижения приоритета.
( выражение ) Будет истинным, если истинно выражение в скобках.
! выражение -false выражение -not выражение Это унарный оператор НЕ. Он будет истинным, если выражение ложно.
выражение -and выражение выражение выражение Оператор -and есть логический оператор И. Поскольку он подразу- мевается непосредственным соседством двух выражений, его не тре- буется указывать явно. Выражение истинно, если оба выражения истинны. Второе выражение не вычисляется, если первое выражение ложно.
выражение -or выражение
Оператор -or есть логический оператор ИЛИ. Выражение истинно, если любое из двух выражений истинно. Второе выражение не вычис- ляется, если первое выражение истинно.
Все операнды и примитивы должны быть отдельными аргументами find. Прими- тивы, имеющие собственные аргументы, ожидают их как отдельные аргументы find.
ОКРУЖЕНИЕ Переменные окружения LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES и LC_TIME влияют на выполнение утилиты find, как описано в environ(7).
ПРИМЕРЫ Нижеследующие примеры показаны в виде, принимаемом командной оболочкой:
find / \! -name "*.c" -print Вывести список всех файлов, имена которых не заканчиваются на .c.
find / -newer ttt -user wnj -print Вывести список всех файлов, принадлежащих пользователю ``wnj, которые изменены позднее файла ttt.
find / \! \( -newer ttt -user wnj \) -print Вывести список всех файлов, которые изменены не позднее файла ttt и одновременно не принадлежат пользователю ``wnj.
find / \( -newer ttt -or -user wnj \) -print Вывести список всех файлов, которые принадлежат пользователю ``wnj или изменены позднее файла ttt.
find / -newerct '1 minute ago' -print Вывести список всех файлов, индексный дескриптор которых был изменён не позднее одной минуты назад.
find / -type f -exec echo {} \; Использовать команду echo(1) для вывода списка всех файлов.
find -L /usr/ports/packages -type l -delete Удалить все битые символические ссылки в /usr/ports/packages.
find /usr/src -name CVS -prune -o -depth +6 -print Найти файлы и каталоги, имеющие по крайней мере семь уровней вло- женности в рабочем каталоге /usr/src.
find /usr/src -name CVS -prune -o -mindepth 7 -print Это не эквивалентно предыдущему примеру, поскольку -prune не выполняется ниже уровня семь.
СОВМЕСТИМОСТЬ Примитив -follow устарел; вместо него рекомендуется использовать опцию -L. Подробнее об этом смотрите ниже, в разделе СТАНДАРТЫ.
СМОТРИ ТАКЖЕ chflags(1), chmod(1), cvs(1), locate(1), whereis(1), which(1), xargs(1), stat(2), acl(3), fts(3), getgrent(3), getpwent(3), strmode(3), re_format(7), symlink(7)
СТАНДАРТЫ Синтаксис утилиты find представляет собой надмножество синтаксиса, опи- санного в стандарте IEEE Std 1003.1-2001 (``POSIX.1).
Все однобуквенные опции, кроме -H и -L, а также -amin, -anewer, -cmin, -cnewer, -delete, -empty, -fstype, -iname, -inum, -iregex, -ls, -maxdepth, -mindepth, -mmin, -path, -print0, -regex и все связанные с временем создания примитивы -B*, представляют собой расширения к стан- дарту IEEE Std 1003.1-2001 (``POSIX.1).
Исторически, опции -d, -L и -x были реализованы через примитивы -depth, -follow и -xdev. Эти примитивы были всегда истинны. Поскольку они фак- тически были глобальными переменными, вступающими в силу до начала обхода, некоторые допустимые выражения могли иметь неожиданные резуль- таты, например, -print -o -depth. Поскольку -print всегда истинен, стан- дартный порядок вычислений подразумевает, что -depth никогда не выпол- нится, что в действительности не так.
Оператор -or был реализован как -o, а оператор -and был реализован как -a.
Исторические реализации примитивов -exec и -ok не заменяли строку ``{} в имени утилиты и её аргументах, если сразу перед этой строкой или сразу после неё были непробельные символы. Эта версия заменяет её в любом месте в имени утилиты и её аргументах, где бы она ни встретилась.
Опция -E была навеяна одноимённой опцией grep(1) и sed(1).
ИСТОРИЯ Команда find появилась в Version 1 AT&T UNIX.
ПРОБЛЕМЫ Специальные символы, используемые find, являются также специальными сим- волами для многих командных оболочек. В частности, может потребоваться экранировать от командной оболочки символы ``*, ``[, ``], ``?, ``(, ``), ``!, ``\ и ``;.
Поскольку не существует разделителей, отделяющих опции от имён файлов или имена файлов от выражений, трудно задать файлы с именами типа -xdev или !. Эти проблемы решаются опцией -f и конструкцией ``-- для getopt(3).
Примитив -delete плохо взаимодействует с другими опциями, меняющими поря- док обхода дерева файловой системы.
Примитивы -mindepth и -maxdepth фактически являются глобальными опциями (как документировано выше). Они, по-видимому, должны быть заменены опци- ями, выглядящими как опции.
FreeBSD 7.2 13 декабря 2006 FreeBSD 7.2