起因在对一堆*.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/

如何用一个命令同时解压多个zip文件!

其实这种问题的解决方法有很多种,这里列举四种比较常见的:

法一:用分号隔开(适用于对象较少的时候)

# 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文件

最新文章

  1. Win7上的ASP.NET MVC3项目在Win10上运行的一个坑
  2. android5.1 for tq335x
  3. iOS开发工具——网络封包分析工具Charles
  4. VMware设置共享文件夹
  5. Linux常用命令之sed
  6. MYSQL while 、repeat
  7. Transparency Tutorial with C# - Part 2
  8. linux 经常使用配置
  9. java面试题(一)
  10. [效率]Source insight标题栏中路径显示完整路径的方法
  11. python --- socket模块详解
  12. Docker 多主机方案
  13. 如何使用命令从linux服务器下载文件到windows
  14. jq 监听调整浏览器窗口的大小
  15. 小学生四则运算App实验成果
  16. 学习率设置&&训练模型之loss曲线滑动平均
  17. BaaS后端即服务 - 概念篇
  18. Java开源-astar:A 星算法
  19. Condition接口
  20. Java 设计模式之单例模式(一)

热门文章

  1. Hadoop分布式安装
  2. DATE,DATETIME,DATETIME2等日期时间数据类型
  3. 让CALayer的shadowPath跟随bounds一起做动画改变-b
  4. 屌丝IT男
  5. MITK Tutorial(二)
  6. MySQL中的配置参数interactive_timeout和wait_timeout(可能导致过多sleep进程的两个参数)
  7. HTML5网页制作教程:HTML5块级链接
  8. [转载]ASP.NET对路径"xxxxx"的访问被拒绝的解决方法小结
  9. cg 到hlsl的转换
  10. sampler2d