Программы
10 хороших примеров работы в Linux, FreeBSD и прочих Unix. Часть 7 — xargs

10 хороших примеров работы в Linux, FreeBSD и прочих Unix. Часть 7 — xargs

В седьмой части статьи «Learn 10 good UNIX usage habits» от IBM мы рассмотрим некоторые возможности xargs.

В седьмой части статьи «Learn 10 good UNIX usage habits» от IBM мы рассмотрим некоторые возможности xargs.

7. Используйте xargs без find.

Можно использовать xargs как преобразователь для вывода команды find. Основная задумка в получении файлов через find, соответствующих критерию поиска. Список найденных файлов передаётся в xargs, который потом запустит какую-нибудь полезную команду со списком файлов в виде аргументов. Самый простой пример:

~ $ find | \
 > xargs

Однако, не думайте что xargs полезен только с утилитой find. xargs — один из самых недооценённых инструментов.

Изображение Шпаргалка по командам Linux, FreeBSD и MacOS

Передача списка, разделённого пробелами

В самом простом случае с помощью xargs можно представить список аргументов, разделённых переводами строк, в виде списка, разделённого пробелами:

$ echo "a
> b
> c" | xargs
a b c

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

$ ls -1 | xargs
database rsa test-weight.html
$ ls -1 | xargs file
database: directory
rsa: PEM RSA private key
test-weight.html: HTML document, ASCII text

Также xargs полезен, когда надо преобразовать вывод команды в одну строку:

$ ls -l | xargs
итого 12 drwxrwxr-x 8 b b 4096 дек 22 2016 database -r-------- 1 b b 3243 июл 28 17:53 rsa -rw-rw-r-- 1 b b 192 мар 17 16:40 test-weight.html