Использование xargs для параллельной обработки в Linux

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

xargslinuxbash

👁 xargs — мощный инструмент для оптимизации команд в Linux. Он принимает аргументы из стандартного ввода и выполняет их как команды. Особенно полезна его способность к параллельному выполнению задач, что ускоряет обработку больших объемов данных.

📝 Пример использования xargs для параллельной обработки файлов:

#!/bin/bash

# Сканируем все текстовые файлы в директории и сжимаем их параллельно
find /path/to/files -type f -name "*.txt" | xargs -P 4 -I {} bash -c 'gzip "{}"'

# Сканируем все файлы и выводим их путь
find /path/to/files -type f -name "*.log" | xargs -P 8 -I {} echo "Обрабатываем: {}"

📌 Как это работает:

  • В первом примере, команда find находит все файлы с расширением .txt в указанной директории, передает их в xargs, который выполняет команду gzip для каждого файла параллельно, используя флаг -P для указания числа параллельных процессов.
  • Во втором примере мы используем xargs для параллельного вывода списка файлов, что ускоряет обработку большого количества логов или других данных.

❗️ Такой подход может существенно ускорить процессы обработки или сжатия больших наборов данных в автоматизированных пайплайнах.

tags: #linux #bash #полезно

🧭 @recura_tech 🌐 VK 🌐 MAX

Тёмный скриншот терминала с фрагментом bash: команды find и xargs (-P 4, -P 8) для параллельной обработки файлов и логотип RECURA.
Пример команд find и xargs для параллельной обработки и сжатия файлов.

Читайте так же