概述
- 我有一个文件夹
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的简单使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复