xargs的- n1参数
起因在对一堆*.tar.gz文件解压缩时,发现tar xvfz *.tar.gz不管用,一查,原来是tar xvfz *.tar.gz会被shell给拆成tar xvfz a.tar.gz b.tar.gz c.tar.gz,而在a.tar.gz中不存在b.tar.gz,当然会报错。
解决方法是使用脚本,写法很多,其中一种是:
for i in $(ls *.tar);do tar xvf $i;done
或:for tar in *.tar.gz; do tar tvfz $tar;done
另还有一种使用xagrs的写法:
ls *.tar.gz|xargs -n1 tar tvfz
关键就在于这个xagrs的-n1参数是什么意思呢?
n1应该是指每次只传递一个参数给args命令,有高人写过如下脚本对比,非常能说明问题:
echo "1 2 3 4"|xargs -n1
1
2
3
4
echo "1 2 3 4"|xargs -n2
1 2
3 4
这样,若加n1参数,则*.tar.gz会拆成每个tar.gz文件后,一个一个传给tar tvfz命令,这样就解决了问题。.
http://blog.163.com/squall_smile/blog/static/603498402013122570281/
其实这种问题的解决方法有很多种,这里列举四种比较常见的:
法一:用分号隔开(适用于对象较少的时候)
# ls
p2848731_11i_SOLARIS.zip p2848731_11i_zhs.zip p4262360_11i_GENERIC.zip
#unzip p2848731_11i_SOLARIS.zip;unzip p2848731_11i_zhs.zip;unzip p4262360_11i_GENERIC.zip
法二:
#find . -name '*.zip' -exec unzip {} ;
法三:
#ls *.zip | xargs -n1 unzip
法四:(借用一个循环)
# for i in *
> do
> unzip $i
> done
http://blog.chinaunix.net/uid-57865-id-2090586.html
法五:
使用
unzip "*.zip"
ls *.zip | xargs -n1 unzip
解压当前目录下的所有zip文件
最新文章
- Win7上的ASP.NET MVC3项目在Win10上运行的一个坑
- android5.1 for tq335x
- iOS开发工具——网络封包分析工具Charles
- VMware设置共享文件夹
- Linux常用命令之sed
- MYSQL while 、repeat
- Transparency Tutorial with C# - Part 2
- linux 经常使用配置
- java面试题(一)
- [效率]Source insight标题栏中路径显示完整路径的方法
- python --- socket模块详解
- Docker 多主机方案
- 如何使用命令从linux服务器下载文件到windows
- jq 监听调整浏览器窗口的大小
- 小学生四则运算App实验成果
- 学习率设置&;&;训练模型之loss曲线滑动平均
- BaaS后端即服务 - 概念篇
- Java开源-astar:A 星算法
- Condition接口
- Java 设计模式之单例模式(一)
热门文章
- Hadoop分布式安装
- DATE,DATETIME,DATETIME2等日期时间数据类型
- 让CALayer的shadowPath跟随bounds一起做动画改变-b
- 屌丝IT男
- MITK Tutorial(二)
- MySQL中的配置参数interactive_timeout和wait_timeout(可能导致过多sleep进程的两个参数)
- HTML5网页制作教程:HTML5块级链接
- [转载]ASP.NET对路径";xxxxx";的访问被拒绝的解决方法小结
- cg 到hlsl的转换
- sampler2d