TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #122 664
Как ускорить Bash-скрипты с помощью xargs и параллельных задач

Когда нужно обработать множество файлов, выполнить команды для каждой строки или справиться с большим объёмом задач, утилита xargs может стать вашим секретным оружием. Её главное преимущество - возможность запускать команды параллельно, экономя время и ресурсы.

Что делает xargs?

xargs берёт стандартный ввод или вывод другой команды, разбивает его на части и передаёт в указанную команду. Это незаменимо для обработки больших объёмов данных.


Параллельная обработка с xargs

Флаг -P позволяет запускать несколько процессов одновременно, значительно ускоряя выполнение задач.

Пример 1: Параллельное сжатие файлов. Представьте, что нужно сжать множество файлов:


find /path/to/files -type f -name "*.log" | xargs -P 4 -I {} gzip {}


-P 4 - запускает 4 процесса одновременно.
-I {} - заменяет {} в команде именами файлов.
gzip - сжимает каждый найденный файл.

Результат: ускоренное сжатие за счёт одновременной обработки файлов.

Пример 2: Проверка доступности множества хостов. Список IP-адресов в файле hosts.txt:


192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4


Скрипт для одновременной проверки доступности:


cat hosts.txt | xargs -P 10 -I {} ping -c 3 {}


-P 10 - запускает до 10 проверок одновременно.
ping -c 3 {} - отправляет 3 пакета на каждый IP.

Результат: мгновенная проверка множества хостов.

Пример 3: Параллельное копирование больших файлов. Список файлов в files.txt:


file1.doc
file2.doc
file3.doc


Копирование файлов в другую директорию:


cat files.txt | xargs -P 3 -I {} cp {} /path/to/destination/


-P 3 - выполняет до 3 копирований одновременно.

Почему это быстрее?

Многозадачность. Вместо обработки задач по очереди, они выполняются параллельно.
Оптимизация ресурсов. Загружаются все ядра процессора.
Гибкость. xargs работает с любыми командами и аргументами.


Полезные флаги xargs

-n N - передаёт по N аргументов в каждую команду.


echo "file1 file2 file3" | xargs -n 2 echo


Вывод:


file1 file2
file3


--max-procs (или -P) - ограничивает количество параллельных процессов.

---

Использование xargs с параллельной обработкой - это простой способ ускорить выполнение рутинных задач. Сжатие, копирование, сканирование - всё это можно делать быстрее и эффективнее.

BashTex 📱 #linux #utils
  • 👍 11
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →