2.2. Команде xargs

2.2. Команде xargs

При наличии опции -exec команда find передает указанной команде все найденные файлы, которые обрабатываются за один раз. К сожалению, в некоторых системах длина командной строки ограниченна, поэтому при обработке большого числа файлов может быть выдано сообщение об ошибке, которое обычно гласит: "Too many arguments" (слишком много аргументов) или "Arguments too long" (слишком большой список аргументов). В этой ситуации на помощь приходит команда xargs. файлы, полученные от команды find, она обрабатывает порциями, а не все сразу.

Рассмотрим пример, в котором команда find возвращает список всех файлов, имеющихся в системе, а команда xargs выполняет для них команду file, проверяющую тип каждого файла:

$ find / -type f -print | xargs file

/etc/protocols: English text /etc/securetty: ASCII text

Ниже приведен пример, демонстрирующий поиск файлов дампа, имена которых команда echo помешает в файл /tmp/core.log.

$ find / -name core -print | xargs echo > /tmp/core.log

В следующем примере в каталоге /apps/audit выполняется поиск всех файлов, к которым другие пользователи имеют полный доступ. Команда chmod удаляет для них разрешение на запись:

$ find /apps/audit -perm -7 -print | xargs chmod o?w

Завершает наш перечень пример, в котором команда grep ищет файлы, содержащие слово "device":

$ find / -type f -print | xargs grep "device"

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Пример 12-4. Использование команды xargs для мониторинга системного журнала

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Пример 12-4. Использование команды xargs для мониторинга системного журнала #!/bin/bash# Создание временного файла мониторинга в текщем каталоге,# куда переписываются несколько последних строк из /var/log/messages.# Обратите внимание: если сценарий запускается обычным пользователем,# то


Пример 12-5. copydir, копирование файлов из текущего каталога в другое место, с помощью xargs

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Пример 12-5. copydir, копирование файлов из текущего каталога в другое место, с помощью xargs #!/bin/bash# Копирует все файлы из текущего каталога# в каталог, указанный в командной строке.if [ -z "$1" ] # Выход, если каталог назначения не задан.then echo "Порядок использования: `basename $0` directory-to-copy-to"


18.3.13. Передача параметров сценария системной команде

Из книги автора

18.3.13. Передача параметров сценария системной команде Позиционные параметры можно передать сценарию, а затем проверить значение переменной. Если при этом пользователь указывает после названия сценария наименование каталога, сценарий заново присваивает специальному


Утилита find и xargs при ней

Из книги автора

Утилита find и xargs при ней На этих страницах речь пойдет о пакете, известном в проекте GNU как findutils. И в первую голову — о команде find (как, впрочем, и о тесно связанной с ней команде xargs). Столь высокая честь выпадает им потому, что посредством этих двух команд можно выполнить