免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1538 | 回复: 9
打印 上一主题 下一主题

压缩问题,请大家帮忙看看  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-07 23:15 |只看该作者 |倒序浏览
现在要实现象win上类似的功能。
比如一个temp文件夹下有很多.txt文件,在win上可以直接对temp文件夹压缩,把temp压缩成temp.rar文件。
自己尝试的方案:
1. 先用tar归档。 tar -cvf  temp temp/
                 gzip tempv.tar   --->temp.tar.gz
   但这样存在的问题是前台在win下解压的时候 直接解压成temp.tar文件了。并不能生成temp文件夹
   在win下又不能用tar -xvf temp.tar来解压
   
2. 用gzip -r temp/
   这样只是对temp文件夹下面的所有文件递归压缩了,而temp文件夹的名字还是temp文件夹。我想要的是把所有的文件压缩成一个包
   
3. zip -r temp.zip temp/ 这个可以实现类似的功能。
   但我发现zip压缩后怎么比压缩前文件占用的字节数还多??(我对一个单独的文件试过。用gzip是要比原小些)
   怎么zip压缩后还要占的空间多些呢?
   
啰嗦了这么多,不知道大家有没有明白我说的意思。 请大家帮忙给个方案,谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2009-01-07 23:24 |只看该作者
tar cvf - directory | gzip -c9 > directory.tar.gz

论坛徽章:
0
3 [报告]
发表于 2009-01-07 23:28 |只看该作者
楼上的生成directory.tar.gz的这个压缩包在win下能解压吗?
你这个跟我说的第一个方案有什么不同?请指教。

论坛徽章:
0
4 [报告]
发表于 2009-01-07 23:33 |只看该作者

回复 #3 hr_it 的帖子

怎么会解压不了?.tar.gz 格式的文件是通用的,你在 Win32 平台上拿 gzip 和 tar 命令再解开就是了。
管道和中间文件的操作方式似乎确实有点不同,当然如果你的 WinRAR 没问题那么都应该能正确解压缩。试一试卸载后重新安装!
其实说到底 .tar.gz 拿到 Win32 平台都得另外安装软件才能解压,要么是 Cygwin,要么 GNUWin32,要么用它们单独的 Win32 移植版本。最坏的打算是只能用 WinRAR/WinZip。

论坛徽章:
0
5 [报告]
发表于 2009-01-07 23:40 |只看该作者
再啰嗦一句:Win32 平台上你得当心文本模式的管道,它会破坏你 gunzip 出来的文件结构,所以也许先 gunzip 到一个中间文件再用 tar 解开,这才是更合适的方式。

论坛徽章:
0
6 [报告]
发表于 2009-01-07 23:53 |只看该作者
因为这个压缩包是提供给在win前台解压的。
我在unix上压缩成.tar.gz形式后,再用服务器下载到win上测试。 用WinRAR解压后对这个.tar再不能解压了。

难道是我的winrar有问题?

论坛徽章:
0
7 [报告]
发表于 2009-01-07 23:55 |只看该作者

回复 #1 hr_it 的帖子

我一般是:
$tar cvfz temp.tgz temp
直接搞成*.tgz的压缩包。

到windows下:
右键winrar解压到当前目录成temp.tar,右键再解压。
也就是说要解压两次。

这样很累,所以就双击压缩包,winrar打开后再双击里面的temp.tar,然后用解压到哪里哪里来搞的。

觉得真的好恶心

windows下压缩东西的时候,右键,创建归档文件,选择压缩成zip格式。这样到linux下直接unzip解压。

论坛徽章:
0
8 [报告]
发表于 2009-01-07 23:57 |只看该作者

回复 #6 hr_it 的帖子

非常怀疑你的 WinRAR 需要重新安装一遍。另外,能用管道的地方你就用管道吧。又因为是 Unix,你更可以放心地用。

论坛徽章:
0
9 [报告]
发表于 2009-01-07 23:59 |只看该作者
好的,谢谢楼上的两位。 明天我再去试下。

各位早点休息吧,晚安!

论坛徽章:
0
10 [报告]
发表于 2009-01-08 00:01 |只看该作者
提供我所使用的 WinRAR 版本号:3.10
用这个版本,不存在只能先解压到 tar 然后才能释放目录结构的问题。
你再试试看,也许真的是版本问题,也许真的是需要用管道(tar cvf - directory | gzip ...)。
这个主题放在这里不太合适,先锁了。建议去 http://linux.chinaunix.net/ 问问看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP