我是靠谱客的博主 纯真海燕,最近开发中收集的这篇文章主要介绍xargs的简单使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 我有一个文件夹train2017,里面有236574个文件,一半是jpg,一半是txt
  • ls train2017,输出是

000000000009.jpg 000000144951.jpg 000000291655.jpg 000000436141.jpg
000000000009.txt 000000144951.txt 000000291655.txt 000000436141.txt

  • ls train2017/*jpg,报错bash: /bin/ls: Argument list too long
  • 要查看所有jpg应该使用命令find train2017 -name '*jpg'|xargs -n3,输出是

train2017/000000063879.jpg train2017/000000326820.jpg train2017/000000166598.jpg
train2017/000000178388.jpg train2017/000000568154.jpg train2017/000000138473.jpg

-n3表示一行输出3项

  • 复制所有文件到ww:ls train2017|xargs -n1 -I {} cp train2017/{} ww

参数 -I表示将xargs结果的每一行作为后面命令的参数执行一次,执行时替换命令中的{}
-I指定被替换符,后面的{}不能省略
也可以使用-i,被替换符默认为{}
ls train2017|xargs -n1 -i cp train2017/{} ww

  • 复制所有jpg到ww:find train2017 -name '*jpg'|xargs -n1 -I {} cp {} ww
  • 删除ww中的所有txt:find ww -name '*txt'|xargs -n2 -I {} rm {}
  • 解压多个压缩包:find . -name '*tar'|xargs -n1 -I {} tar -xf {}

这个命令没有测试,可能是错的,哈哈。如果不行,参考这篇博客

  • 补充一个常用的参数 -d自定义分隔符,默认是空格。如echo "nameXnameXnameXname" | xargs -dX -n2输出

name name
name name

20211117

  • find . -name ‘*tar’|xargs -n1 -i ll {}会报错没有那个文件,应该这样:find . -name ‘*tar’|xargs -n1 -i ls -l {}

最后

以上就是纯真海燕为你收集整理的xargs的简单使用的全部内容,希望文章能够帮你解决xargs的简单使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部