千家信息网

Linux中的xargs命令怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍Linux中的xargs命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Linux系统中,find命令把匹配到的文件传递给xargs命令,而xargs
千家信息网最后更新 2026年11月01日Linux中的xargs命令怎么用

这篇文章主要介绍Linux中的xargs命令怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在Linux系统中,find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,xargs要处理的文件如果不是在结尾,需要加上 -i这个参数。

命令格式:

 somecommand |xargs -item  command

参数:

  • -a file 从文件中读入作为sdtin

  • -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。

  • -p 当每次执行一个argument的时候询问一次用户。

  • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。

  • -t 表示先打印命令,然后再执行。

  • -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。

  • -r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。

  • -s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。

  • -L num 从标准输入一次读取 num 行送给 command 命令。

  • -l 同 -L。

  • -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。

  • -x exit的意思,主要是配合-s使用。。

  • -P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

实例

xargs 用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

 # cat test.txt  a b c d e f g h i j k l m n o p q r s t u v w x y z

多行输入单行输出:

 # cat test.txt | xargs a b c d e f g h i j k l m n o p q r s t u v w x y z

-n 选项多行输出:

 # cat test.txt | xargs -n3  a b c d e f g h i j k l m n o p q r s t u v w x y z

-d 选项可以自定义一个定界符:

 # echo "nameXnameXnameXname" | xargs -dX  name name name name

结合 -n 选项使用:

 # echo "nameXnameXnameXname" | xargs -dX -n2  name name name name

读取 stdin,将格式化后的参数传递给命令

假设一个命令为 sk.sh 和一个保存参数的文件 arg.txt:

 #!/bin/bash #sk.sh命令内容,打印出所有参数。  echo $*

arg.txt文件内容:

 # cat arg.txt  aaa bbb ccc

xargs 的一个选项 -I,使用 -I 指定一个替换字符串 {},这个字符串在 xargs 扩展时会被替换掉,当 -I 与 xargs 结合使用,每一个参数命令都会被执行一次:

 # cat arg.txt | xargs -I {} ./sk.sh -p {} -l  -p aaa -l -p bbb -l -p ccc -l

复制所有图片文件到 /data/images 目录下:

 ls *.jpg | xargs -n1 -I {} cp {} /data/images

xargs 结合 find 使用

用 rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用 xargs 去避免这个问题:

 find . -type f -name "*.log" -print0 | xargs -0 rm -f

xargs -0 将 \0 作为定界符。

统计一个源代码目录中所有 php 文件的行数:

 find . -type f -name "*.php" -print0 | xargs -0 wc -l

查找所有的 jpg 文件,并且压缩它们:

 find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz

xargs 其他应用

假如你有一个文件包含了很多你希望下载的 URL,你能够使用 xargs下载所有链接:

 # cat url-list.txt | xargs wget -c

以上是"Linux中的xargs命令怎么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

命令 文件 时候 参数 内容 分隔符 字符 输入 最大 格式 多行 输出 一行 字符串 定界符 数据 标志 目录 空格 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 云之行互联网科技 湖南永感互联网科技有限公司 云信互联网科技有限公司 科技金融是不是互联网金融 互联网是不是新科技 金融科技与互联网金融 互联网金融科技平台 北京禾田雨橡互联网科技 郑州华宇互联网科技 互联网科技创新企业排名 互联网公司会议桌创意科技软装饰 科技与互联网哪个更好 互联网大会黑科技排名 互联网科技和信息 青海科技产业互联网发展 沐思想互联网科技有限公司 互联网相关科技技术 中国科技和美国互联网 互联网科技和医药行业 互联网与科技 深圳九邦互联网科技有限公司 沃里互联网科技 科技类的互联网平台 恒生科技互联网指数分析 互联网相关科技技术 互联网科技包装股份有限公司上市 九思连强互联网电子科技有限公司 互联网科技创业计划的风险分析 武汉亿视互联网科技有限公司
0