Linuxlab

Команда xargs в Linux: собрать команду из ввода

Обновлено 3 июля 2026 г.

xargs берёт строки со стандартного ввода и подставляет их как аргументы другой команде.

Синтаксис

... | xargs [команда]

Частые случаи

echo a b c | xargs mkdir            # создать каталоги a, b, c
find . -name '*.tmp' | xargs rm     # удалить все найденные .tmp
find . -name '*.log' -print0 | xargs -0 rm   # безопасно с пробелами
cat urls.txt | xargs -n1 echo       # по одному аргументу за раз
ls | xargs -I{} mv {} {}.bak        # на место {} встанет имя

Как это устроено: зачем xargs, если есть конвейер

Конвейер | отдаёт вывод на стандартный ВВОД следующей команды. Но многие команды (rm, mkdir, cp) берут цели не из ввода, а из АРГУМЕНТОВ. xargs соединяет одно с другим: читает строки и ставит их в конец команды как аргументы. Главная ловушка - пробелы и переносы в именах файлов. Безопасный способ: find ... -print0 | xargs -0, где имена разделены нулевым байтом, а не пробелом. Часто ту же работу делает find -exec, но xargs запускает команду реже и потому быстрее на больших списках.

В книге

Подробно эта тема разобрана в главе Потоки, перенаправление, конвейеры.

См. также

Конвейеры и фильтры, Команда find, Регулярные выражения.

Попробовать

Открой песочницу: настоящий одноразовый терминал Linux в браузере. Выполни команды выше своими руками - контейнер удаляется, когда ты уходишь.