抛弃Windows,用Ubuntu办公-4.解压缩与压缩
系列全部文章:抛弃Windows,用Ubuntu办公
顺便说一句,我在windows下早就不用winRAR了,一直用的是7-zip的官方版,前几个月发现有个国产的HaoZip比较好用,就把7-zip也卸载了。
WinRAR曾经给我所在的单位发过律师函,当时我给单位的建议是,全部换成7-zip,然后不理律师函。结果这事不了了之,当时有没有人响应这个号召我不清楚,反正我是强行把我们部门所有电脑上的WinRAR都卸载了,现在随便转一圈,电脑上又是RAR当道了……
唉……普及免费软件何其难啊 :cry:
为什么要把解压缩放在前面呢?
因为解压缩碰到的问题远比压缩要多。不同压缩文件的支持问题、zip文件的乱码问题,都需要一个个去解决。而压缩就简单了,直接用右键菜单解决。(我懒,没办法)
:em55:
1.rar和7z格式压缩文件的支持
安装unrar和p7zip包,然后就可以用归档管理器打开了。也可以使用右键的“解压到此处”功能来解压。
sudo apt-get install unrar p7zip
2.使用命令行解压
以前在windows下面看到.tar.gz的文件总是一头雾水,因为解压一次之后,还要再解压一次tar包。来到linux下才知道,原来tar只是个包,bz2或者gz才是起到压缩功能的。看tar的说明看得一头雾水,多试验几遍,把经常使用的几个参数弄明白了,就不再研究tar了。
我一般这么用3个参数进行tar解压,第1个参数x就是解压文件;第2个参数指定压缩类型,如果是gz压缩的,就用z,如果是bzip2压缩的,就用j(其他解压类型可以man tar,至少我目前只碰到过这两种);第3个参数f指定文件名。
这样,如果要解压一个gz压缩包,就可以这样:
tar xzf file.tar.gz
如果是bzip2压缩包,就是这样:
tar xjf file.tar.gz
我的经验就这么多了,想知道更详细的东东,可以看这篇文章:http://docs.google.com/View?id=ajf3xsjz9vhb_3009r95sd8z
3.解压zip文件出现乱码
由于zip文件不支持utf8(或许是这样吧),在windows下面压缩的zip文件中如果有中文文件名,在linux下面解压就是乱码。我最开始google到的消息,是可以使用unzip命令的-O选项指定CP936编码解决,好像是这样:
unzip -O CP936 file.zip
但是我试验发现这个方法不行,才知道新的unzip命令取消了-O选项的支持。
后来找到了解决方法,但是有点麻烦,但我觉得这就是目前能找到的最好的办法了。
首先安装convmv,这个命令用来解决文件名乱码的问题:
sudo apt-get install convmv
在安装了7z支持的前提下,运行下面的代码(范例文件夹中,有一个flash.zip压缩文件,还有几个中文文件名的文件):
LANG=C 7z x flash.zip
反馈如下:
7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=C,Utf16=off,HugeFiles=on,2 CPUs)
Processing archive: flash.zip
Extracting ������ľ.fla
Extracting ������ľ.swf
Everything is Ok
Files: 2
Size: 3004879
Compressed: 822477
然后使用convmv修改文件名,convmv的使用非常简单,只需要用f参数指定原编码,用t参数指定要转换到的编码,后面加上通配符*就行了(因为文件名是乱码,我们无法输入文件名,只能用通配符代替)。对于原编码,我们可以用gbk或者gb2312,而转换到的编码,则应该用utf8.
convmv -f gbk -t utf8 *
从直接结果可以看到,对于文件夹下面原来的中文命名的文件,convmv是直接跳过的。而如果我们不加上notest参数,它也不会实际进行转换,而只显示一个转换后的结果。
Your Perl version has fleas #37757 #49830
Starting a dry run without changes...
mv "./������ľ.fla" "./保护树木.fla"
mv "./������ľ.swf" "./保护树木.swf"
Skipping, already UTF-8: ./关于幼教网修改方案.doc
Skipping, already UTF-8: ./现场竞赛名单.xls
No changes to your files done. Use --notest to finally rename the files.
接下来就可以加上notest参数进行实际的转换了:
convmv -f gbk -t utf8 --notest *
当然,如果你还是怕convmv会弄错原有的文件名,可以把flash.zip中的文件解压到一个新的文件夹中再进行转换。
- 文章ID:1007
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/use-ubuntu-to-replace-windows-zip/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。