- 我有一个文件夹
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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复