Xargs: приемы использования и их разнообразие

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

    Полученные в результате сбора данные передаются по цепочке как аргумент. В общем случае синтаксис утилиты**** xargs для Linux выглядит так:

    xargs [-l число] [-I зам_цеп] [-n число] [-t] [-p] [-x] [-s размер] [-e [лконф_цеп]] [команда [начальный_аргумент…]]

    Один из самых простых и понятных примеров — удаление файлов по списку, собранному командой find. Такая процедура необходима, например, для удаления файлов конкретного типа (временных, дублей и т.д.). Чтобы сделать это автоматически по результату поиска, следует передать утилите xargs список удаляемого содержимого, сгенерированного find. Приведем команду для расширения *.sh:

    ls one.sh one.py two.sh two.py find . -name "*.sh"| xargs rm -rf ls one.py two.py

    При желании провести такую процедуру можно и без xargs:

    find . -name "*.sh" -exec rm -rf '{}' \

    Правда, приведенная команда может не сработать для файлов, имя которых содержит хотя бы один пробел. Решение проблемы есть: для команды find — это опция print0, для утилиты xargs — -0. Их применение позволяет заменить разделитель по умолчанию (перенос строки на нуль-символ). Пример:

    find . -name "*.sh" -print0 | xargs -0 rm –rf find /tmp -name "*.tmp"| xargs rm

    Последняя команда нацелена на удаление всех временных файлов.

    Еще одна популярная операция — архивация данных, всех находящихся в каталоге или отдельно взятых (например, по расширению). Первое будет выполнено по команде:

    find . | xargs -p -l gzip

    Второй пример показывает, как сжать все файлы с расширением .sh:

    find . -name "*.sh" | xargs tar -zcf pl.tar.gz

    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны