--- #领域/Linux #复盘/4 ## 一句话描述 [__xargs 使用说明______] --- ## 核心示例 xargs 接收管道 / 标准输入的文本内容,把它转换成后续命令的「参数列表」,然后执行这个命令 ### ✅ 基本用法 ```bash find . -name "*.log" | xargs rm -rf ``` ### ✅ 生产环境用法 ```bash find [路径] [条件] -print0 | xargs -0 -I {} 目标命令 {} 固定参数 ``` ### ✅ 默认无占位符 vs. 自定义占位符 ```bash # 默认无占位符 ls *.txt | xargs rm -rf # ls 输出:a.txt b.txt # xargs 拼接后执行:rm -rf a.txt b.txt # -I {} 指定占位符 find . -name "*.txt" | xargs -I {} mv {} /tmp/bak/{}.bak # 命令A | xargs -I {} 目标命令 {} 固定参数 ``` ### ✅ 生产环境:兼容带空格/特殊字符的文件名 ```bash # user info.log 或 data|test.csv # 默认空格会被当成参数分隔符 find [路径] [条件] -print0 | xargs -0 目标命令 # find -print0:输出时使用空字符\0作为文件名的分隔符 # xargs -0:接收时使用空字符\0作为分隔符 ``` ## 参数说明 - 默认无占位符,自动拼接参数列表->追加至末尾->执行命令,(默认将空格、制表符、换行符作为参数分隔符) - -I {},指定占位符 - -print0 | xargs -0:指定\0为文件名分隔符 | 选项 | 说明 | | ---- | --------------- | | -p | 执行前交互式确认 | | -t | 执行前打印要执行的命令 | | -n N | 每次只传递 N 个参数执行命令 |