简介:xargs(eXtended ARGuments),主要用于将标准输入的数据转换成命令行参数。xargs 能够处理管道或文件中传递的数据,并将这些数据作为参数提供给其他命令。这在需要处理大量文件或输出结果时尤为有用。xargs 命令在 Linux 中是一个非常强大的工具,用于构建并执行命令行,能够将标准输入数据转换成命令行参数,从而允许用户以管道方式将一系列字符串传递给其他命令。该工具以其最基本的形式从标准输入 (stdin) 读取数据,并根据读取的输入执行命令(作为参数提供给它)一次或多次。输入中的任何空白和空格都被视为分隔符,而空白行将被忽略。
本文主要介绍的是Linux系统中xargs命令的使用方法。详细内容请参考下文。
一、Linux系统
1.访问Linux系统
2.查看xargs帮助信息
二、xargs基础知识
1.xargs语法结构
语法结构:
备注:xargs命令的常用选项说明如下。
2.awk命令作用
说明:xargs命令的作用是从标准输入或另一个命令的输出中读取文本行,并将其转换为命令并执行。其执行格式如下:
备注:xargs命令的详细作用如下:
三、xargs使用实例
1.结合rm命令删除相应的文件
执行指令# ls *.txt | xargs rm 删除当前目录下的作用txt文件
2.使用-I{}参数指定替换字符串
执行指令# ls *.txt | xargs -I{} cp {} /usr/local/tmp1
3.使用-d参数指定分隔符
执行指令# echo "file1.txt file2.txt file3.txt" | xargs mkdir创建三个文件file1.txt,file2.txt,file3.txt
执行指令# echo "name1,name2,name3" | xargs -d,
备注:xargs命令的-d 选项可以自定义一个定界符。
执行指令# echo "name1,name2,name3,name4,name5,name6" | xargs -d, -n2
备注:xargs命令的-d 选项还可以结合参数-n一起分行使用。
4. 结合find命令删除特定文件
执行指令# find . -name "*.bak" -type f | xargs rm 删除bak文件。
5. 结合find命令修改文件权限
执行指令# find . -name "*.sh" -type f | xargs chmod 755 修改权限
6. 结合grep命令查找包含特定文本的文件
执行指令# grep -l "ERROR" *.log | xargs -I {} mv {} /usr/local/errorlogs
备注:这里 -I选项让 grep 只输出包含匹配文本的文件名,然后 xargs 将其移动到 /usr/local/errorlogs 目录。
7.并行执行命令
执行指令# ls *.jpg | xargs -n 1 -P 3 gzip
备注:这将一次性启动 3个 gzip 进程来并行压缩 .jpg文件。
8.查找并打包压缩jpg文件
执行指令# find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz