Применение xargs






Существуют некоторые программы, которые могут оказаться гораздо полезнее, нежели кажется на первый взгляд. По мнению автора xargs является одной из таких программ. Эта программа получает данные из потока стандартного ввода и использует их для построения командной строки. Вроде бы ничего особенного, но иногда это бывает очень и очень полезным свойством.


Как только вы имеете перечень файлов в виде списка, вы можете делать с ними всё, что вам заблагорассудится. Один из любимых сценариев оболочки на машине автора имеет имя clean-titles.sh. Он крайне прост и создан для того, чтобы отыскивать в дереве файловой системы backup-файлы по шаблону '*~', и передавать пути найденных файлов программе rm.

Обратите внимание на одинарные кавычки, обрамляющие шаблон. Если вы забудете их, то оболочка обработает их как спецсимволы.

Ещё один полезный способ использования xargs заключается в поиске файлов с определённым содержимом и выполнения некоторых действий с найденным. Например, давайте отыщем все файлы, содержащие комментарии TODO и откроем эти файлы в kate:

Ключ kate -u сообщает редактору о том, что не нужно создавать новую сессию, а открывать файл в текущем окне. Такой способ запуска kate настолько часто используется автором, что он создал соответствующий alias в оболочке для этого. Однако xargs не обрабатывает alias'ы и в команде необходимо указывать опцию -u явно.

Подобным образом можно найденные TODO отправить в сообщении коллеге. Всего лишь замените вызов xargs на xclip и результаты поиска окажутся в буфере обмена, из которого вы затем можете выполнить вставку в электронное сообщение, добавив к тексту что-нибудь вроде: «Привет! Сделай, пожалуйста, это до завтра.»

Оригинал на linuxjournal.com