LinuxSir.cn,穿越时空的Linuxsir!

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

tar 1.15.1-6坏了

[复制链接]
发表于 2006-3-24 21:56:57 | 显示全部楼层 |阅读模式
Debian Sid
home/bob/test文件夹下有两个文件夹,test1, test2,现在将test文件夹打包,但是排除test2文件夹,使用--exclude命令。可是出现了下面的错误

  1. bob@jifengzhang:~$ tar zcvf test.tar.gz test/ --exclude=/home/bob/test/test2/
  2. test/
  3. test/test1/
  4. test/test1/openq_0.3.2-2006_i386.deb
  5. test/test2/
  6. test/test2/chmsee_0.9.5-1_i386.deb
  7. tar: --exclude=/home/bob/test/test2:无法 stat: 没有那个文件或目录
  8. tar: 由于前面延迟的错误而退出
复制代码


google了一下,发现这样写才可以

  1. bob@jifengzhang:~$ tar --exclude=test/test2 -zcvf test.tar.gz test/
  2. test/
  3. test/test1/
  4. test/test1/openq_0.3.2-2006_i386.deb
复制代码


也就是说需要把参数放在前面,我在网上上找到的tar用法的资料都是用的第一种方式,即把--exclude放在后面。但是我的版本的tar 1.15.1-6却不能这样用。

下面这份邮件列表里也提到了这个问题,不知道大家谁也碰到了这个问题,讨论一下。

http://www.cygwin.com/ml/cygwin/2005-10/msg00953.html
发表于 2006-3-24 23:57:21 | 显示全部楼层
我的tar 1.15.1也是一样的不行呢!
回复 支持 反对

使用道具 举报

发表于 2006-3-25 01:24:50 | 显示全部楼层
Post by zjf705
Debian Sid
home/bob/test文件夹下有两个文件夹,test1, test2,现在将test文件夹打包,但是排除test2文件夹,使用--exclude命令。可是出现了下面的错误

  1. bob@jifengzhang:~$ tar zcvf test.tar.gz test/ --exclude=/home/bob/test/test2/
  2. test/
  3. test/test1/
  4. test/test1/openq_0.3.2-2006_i386.deb
  5. test/test2/
  6. test/test2/chmsee_0.9.5-1_i386.deb
  7. tar: --exclude=/home/bob/test/test2:无法 stat: 没有那个文件或目录
  8. tar: 由于前面延迟的错误而退出
复制代码


google了一下,发现这样写才可以

  1. bob@jifengzhang:~$ tar --exclude=test/test2 -zcvf test.tar.gz test/
  2. test/
  3. test/test1/
  4. test/test1/openq_0.3.2-2006_i386.deb
复制代码


也就是说需要把参数放在前面,我在网上上找到的tar用法的资料都是用的第一种方式,即把--exclude放在后面。但是我的版本的tar 1.15.1-6却不能这样用。

下面这份邮件列表里也提到了这个问题,不知道大家谁也碰到了这个问题,讨论一下。

http://www.cygwin.com/ml/cygwin/2005-10/msg00953.html






我也试了下,发现虽然
$ tar zcvf test.tar.gz test/ --exclude=/home/bob/test/test2/  
后有那个错误提示,但其实已经完成了,而且没错误,你查看下gz包就知道了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-25 11:39:55 | 显示全部楼层
Post by gdxk
我也试了下,发现虽然
$ tar zcvf test.tar.gz test/ --exclude=/home/bob/test/test2/  
后有那个错误提示,但其实已经完成了,而且没错误,你查看下gz包就知道了


压缩是完成了,可是所希望排除的文件夹也给压缩进去了,也就是说--exclude参数没有起作用
回复 支持 反对

使用道具 举报

发表于 2006-3-25 11:50:21 | 显示全部楼层
Post by zjf705
压缩是完成了,可是所希望排除的文件夹也给压缩进去了,也就是说--exclude参数没有起作用



昨天我这样做顺利排除了的啊,现在我不在我机子上,等我回去我再试下
回复 支持 反对

使用道具 举报

发表于 2006-3-25 11:50:40 | 显示全部楼层
Post by zjf705
压缩是完成了,可是所希望排除的文件夹也给压缩进去了,也就是说--exclude参数没有起作用



昨天我这样做顺利排除了的啊,现在我不在我机子上,等我回去我再试下
回复 支持 反对

使用道具 举报

发表于 2006-3-25 15:03:30 | 显示全部楼层
我试了一下,我这里可以的:
tar zcf a.tgz --exclude=a/{a1,b1,c1} a

好象要把--exclude 放在要打包的目录前面才行
如果把--exclude放在最后面,tar把它当做要打包的文件了。

[HTML][15:11:13 test]$ tar zcf a.tgz ex --exclude\=a
[15:11:21 test]$ tar ztf a.tgz
ex
--exclude=a/
--exclude=a/a

[15:11:54 test]$ ls -d -- --exclude\=a/
--exclude=a/[/HTML]
回复 支持 反对

使用道具 举报

发表于 2006-3-26 01:54:42 | 显示全部楼层
Post by zjf705
压缩是完成了,可是所希望排除的文件夹也给压缩进去了,也就是说--exclude参数没有起作用



不好意思,我是搞错了,试了楼上兄弟的方法,也是可以的
回复 支持 反对

使用道具 举报

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

本版积分规则

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