xargs

从标准输入读取数据,构建并执行命令行,常与管道配合批量处理

语法

command | xargs [options] [command]

参数

参数说明示例级别
-I {} 指定替换字符串,每行输入替换一次 常用
-n 每次传递 N 个参数 常用
-P 并行执行的最大进程数 常用
-d 指定输入分隔符 常用
-0 以 null 字符分隔输入(配合 find -print0) 常用
-t 执行前打印命令(调试用) 常用

示例

删除所有 .log 文件

find . -name '*.log' | xargs rm

安全处理含空格的文件名

find . -name '*.js' -print0 | xargs -0 grep 'TODO'

逐行读取 URL 并请求

cat urls.txt | xargs -I {} curl -s {}

4 个进程并行压缩图片

find . -name '*.png' | xargs -P 4 -I {} convert {} -resize 50% {}

停止所有运行中的容器

docker ps -q | xargs docker stop

技巧

相关命令