xargs 并行靠 -P 指定并发数,再配 -n 控制每次传几个参数,两个要一起用才有效果。
并发数一般给到 CPU 核数到两倍之间,再往上收益很小,还会把磁盘和网络打满。
文件名带空格或换行时用 -print0 配 -0,否则参数会被切断;并行输出交错就让每个任务各写一个文件。
ls *.log | xargs -P 8 -n 1 gzip
find . -name "*.jpg" -print0 | xargs -0 -P 4 -n 10 convert -resize 50%
seq 1 100 | xargs -P 8 -I {} sh -c 'process {} > out/{}.txt'
THE END






暂无评论内容