7 полезных примеров xargs для эффективного выполнения команд

“xargs” — это команда в системах Unix и Linux, которая позволяет создавать и выполнять команды из стандартного ввода. Вот несколько примеров использования xargs:

  1. Основное использование: Предположим, у вас есть список файлов и вы хотите удалить их все. Вы можете использовать xargs для передачи имен файлов в качестве аргументов команде «rm»:

    cat file_list.txt | xargs rm
  2. Указание максимального количества аргументов: по умолчанию xargs передает команде максимально возможное количество аргументов. Однако вы можете использовать опцию «-n», чтобы указать максимальное количество аргументов, передаваемых одновременно:

    cat file_list.txt | xargs -n 5 rm
  3. Параллельное выполнение команд. Если у вас есть список задач, которые можно выполнять независимо, вы можете использовать опцию «-P» для их параллельного запуска:

    cat task_list.txt | xargs -P 4 -n 1 bash -c
  4. Использование заполнителя: xargs позволяет использовать заполнитель «{}» для представления передаваемых аргументов. Например, если вы хотите выполнить поиск по определенному ключевому слову в нескольких файлах:

    cat file_list.txt | xargs grep "keyword"
  5. Обработка пробелов и специальных символов: xargs может обрабатывать имена файлов с пробелами или специальными символами, используя параметр «-0». Это полезно при работе с именами файлов, сгенерированными другими командами:

    find . -name "*.txt" -print0 | xargs -0 rm
  6. Интерактивный ввод: xargs можно использовать для запроса ввода пользователя и передачи его в качестве аргументов команде. Например, если вы хотите удалить несколько каталогов в интерактивном режиме:

    ls -d */ | xargs -p -I {} rm -r {}
  7. Объединение с другими командами: xargs можно комбинировать с другими командами с помощью каналов. Например, вы можете найти все текстовые файлы, измененные за последние 7 дней, и сжать их:

    find . -name "*.txt" -mtime -7 | xargs tar -czvf backup.tar.gz