В седьмой части статьи «Learn 10 good UNIX usage habits» от IBM мы рассмотрим некоторые возможности xargs.
7. Используйте xargs без find.
Можно использовать xargs как преобразователь для вывода команды find. Основная задумка в получении файлов через find, соответствующих критерию поиска. Список найденных файлов передаётся в xargs, который потом запустит какую-нибудь полезную команду со списком файлов в виде аргументов. Самый простой пример:
~ $ find | \ > xargs
Однако, не думайте что xargs полезен только с утилитой find. xargs — один из самых недооценённых инструментов.
Передача списка, разделённого пробелами
В самом простом случае с помощью 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