LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2590|回复: 16

ls -1 | xargs tar xvjf怎么不行呀?

[复制链接]
发表于 2007-8-14 17:07:35 | 显示全部楼层 |阅读模式
如题。想用一句命令解压同一目录下的tar.bz2文件,可是提示出错。

该怎么用呢?
发表于 2007-8-14 17:12:36 | 显示全部楼层

  1. for file in *.tar.bz2
  2. do
  3. tar xvf $file
  4. done
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-14 17:20:39 | 显示全部楼层
hoho, 先谢了。
用xargs不能实现吗?为什么呢?
回复 支持 反对

使用道具 举报

发表于 2007-8-14 21:45:54 | 显示全部楼层
第一,ls -l的结果里除了文件名以外还有很多其它无用的字段,这些都传给xargs了
第二,xargs并不是一次传一个字段,如果字段不多的话,应该一次都传给tar了
tar不支持同时解压多个文件
回复 支持 反对

使用道具 举报

发表于 2007-8-14 23:31:39 | 显示全部楼层
回楼上
第一点未必对
第二点可以这么修正
  1. $ ls
  2. a.tar.bz2  b.tar.bz2
  3. $ ls -1 | xargs -n1 tar xjvf
  4. a
  5. b
  6. $ ls
  7. a  a.tar.bz2  b  b.tar.bz2
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-8-15 10:35:02 | 显示全部楼层


  1. ls -I *.tar.bz2 | xargs tar jxvf

复制代码


这个可以吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-15 13:36:42 | 显示全部楼层
Post by hualala
第一,ls -l的结果里除了文件名以外还有很多其它无用的字段,这些都传给xargs了
第二,xargs并不是一次传一个字段,如果字段不多的话,应该一次都传给tar了
tar不支持同时解压多个文件

第一里边,是ls -1,不是ls -l。1不是l。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-15 13:44:15 | 显示全部楼层
Post by huan
回楼上
第一点未必对
第二点可以这么修正

  1. $ ls
  2. a.tar.bz2  b.tar.bz2

  3. $ ls -1 | xargs -n1 tar xjvf
  4. a
  5. b

  6. $ ls
  7. a  a.tar.bz2  b  b.tar.bz2
复制代码

能解释一下为什么不使用-n1不行吗?
回复 支持 反对

使用道具 举报

发表于 2007-8-15 13:45:57 | 显示全部楼层
-1是绝对不需要的,输出非终端情况下是默认的。
回复 支持 反对

使用道具 举报

发表于 2007-8-15 14:29:03 | 显示全部楼层
for循环和xargs哪个效率高?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表