解压.rar 的文件后发现乱码,网上是这么解释的:

ubuntu默认是无法解压缩rar格式的文件,需要安装其他软件。

如果安装的是rar,解压rar文件会遇到中文乱码,原因在于该rar文件中的编码与ubuntu的不同。

解决办法很简单,

1.卸载掉当前系统中的rar 软件,在终端中输入:

sudo apt-get remove rar

2.卸载掉rar后,安装p7zip-rar就可解决,在终端中输入:

sudo apt-get install p7zip-rar

可是当时按命令操作时,系统提示错误:

...

....

......

E: 软件包没有可供安装的候选者

我于是在系统设置里面更改了软件源,增加了几个,然后再次运行命令就好了。

使用p7zip可以解压很多文件。具体的使用方法如下::

注:只想知道如何解压RAR格式的朋友可以直接跳到后面,但注意要安装7zip的rar模块
另:linux下也可以安装unrar来解压rar文件,这里从略
简介
7-zip是一款跨平台的开源压缩/解压软件,官方网站是http://www.7-zip.org,支持7z、ZIP、GZIP、BZIP2、TAR等格式,并且可以解压RAR文件(注:由于协议关系,暂时不能压缩成RAR格式),在功能和压缩率上都可以与winRAR相媲美。苦于linux下无法解压RAR文件的同志有希望了。

关于7z格式
和RAR格式相类似,7z格式是一个支持不同压缩率的压缩格式,其最高等级的压缩率比RAR格式的还要高(即压缩出来的文件的大小,比RAR格式的还要小),当然,压缩等级越高,压缩/解压所需要的时间就越多,所占用的内存就越高(甚至会超出可分配给7zip的内存的大小,请特别注意),最低的压缩等级为0,为仅打包。

安装
debian/ubuntu下可以找开新立德软件包管理器或软件中心,搜索"7z",可以看到有p7zip之类字样的包,安装它。需要RAR格式的支持的用户,还需要安装7zip的rar模块,装好后就可以使用了。
在令命行下可以使用apt-get install p7zip-full(ubuntu用户可以在前面直接加上sudo,debian用户可能需要先用su切换至root用户)
fedora和debian/ubuntu类似,这里从略。
opensuse用户请打开官方软站,地址是http://software.opensuse.org,在搜索框中输入"7zip",并选好你的版本,搜索,通常是安装第一个。
其它发行版的用户既可以从自己的源里找,也可以从http://www.7-zip.org/download.html、http://sourceforge.net/projects/p7zip/files/p7zip/上寻找相应的包或源码进行安装。
windows用户请从http://www.7-zip.org/download.html上寻找下载,安装过程很简单,这里从略。

7-zip在命令行下的使用方法
使用格式:7z [adeltux] [-] [SWITCH] ...
第一个7z是程序的名称,7zip装完后会有7z、7za、7zr三个程序,其中7z是全功能的(即启用所有模块的功能),7za是仅使用7zip本身,不启用其它模块(这种情况不支持rar等格式),7zr是精简版,只支持7z格式。
第二个参数[adeltux]是用来告诉7zip执行什么功能:a用于创建压缩文件或向压缩文件中添加文件d用于从压缩文件里删除文件;e用于解压,但不创建目录结构;l用于显示压缩文件里所包含的内容;t用于测试压缩文件是否有效;u用于更新压缩文件内的文件;x用于解压,并且创建目录结构
[-] [SWITCH]是选项开关,部分选项将稍后介绍,也可以使用命令man 7z查看详细说明。
是压缩文件的文件名,后面跟输入文件的文件名(可以使用通配符,可以有多个文件)。
比较常用的选项开关
-t:指定压缩格式,如-t7z
-m:设置压缩方法,详见[url=file:///usr/share/doc/p7zip-full/DOCS/MANUAL/switches/method.htm]/usr/share/doc/p7zip-full/DOCS/MANUAL/switches/method.htm[/url](在debian下,若无法打开,请参照自己的man page)
-p:为压缩档案设置密码,既可以在压缩时先在输入的命令加上-p,然后在执行中输入密码,也可以直接-pPASSWORD,如-p123456
-mhe=on|off:仅适用于7z格式,开启或关闭文件列表的加密,默认为off
-si:从标准输入中读取数据,常与管道操作相结合,用于压缩/打包文件
-so:向标准输出中写入数据,常与管道操作相结合,用于解压/释放文件
-v:用于分卷压缩,比如让输出的每个文件最大为1MB,则用-v1m
-o:将解压后的文件存放到指定目录下,如想要指定解压后的文件输出到目录a下,则用-oa
-l:存储符号链接所对应的文件/目录,并替换到此链接上(注意,在所压缩的文件里不可以有递归链接)
关于命令返回值
7-zip退出后也有自己的返回值,想要查看返回值,请在命令执行完成后马上执行echo $?命令(即中间不要执行其它命令),以查看返回值,下面列出各返回值所代表的意义。
0 正常
1 警告(没有错误),比如某些文件在压缩过程中无法读取
2 错误
7 无法识别命令行参数
8 没有足够的内存来执行操作
255 用户自行按下Ctrl+C来中止程序

7-zip在命令行下的使用实例
注:所有操作若无特殊说明,均在普通用户下操作
1.基本操作
压缩

我将实验用的一些文件放到了~/temp下,其结构如下:

包含三个文件,两个目录,其中一个为隐蔵的freemind目录下包含两个子目录,其中一个为隐蔵的。
好,下面来压缩这些文件,在命令行下执行

CODE:
7z a temp.7z *

效果如下:

压缩成功
查看压缩文件里面所包含的文件
查看压缩文件里面都有什么,可执行命令

CODE:
7z l temp.7z

效果如下:

向压缩文件里添加文件
可以看到,除了.freemind之外的所有文件和目录全被加到压缩文件里面了,即这种情况无法直接压缩隐蔵文件和目录, 可以将隐蔵文件在压缩后添加,即执行命令

CODE:
7z a temp.7z .freemind

好,现在这个隐蔵目录就被加进去了。
解压文件(安装rar模块后,可 解压RAR文件
下面,将压缩好的文件解压, 在解压时,一般用x即7z x,因为e不建立目录结构,解压后的文件直接输出到当前目录下,在本例中,将解压后的文件全放到一个指定目录t下,所以执行命令

CODE:
7z x -ot temp.7z

可以看到,目录t被自动创建了,并且7zip按照预期的要求解压了此文件。
注,解压可以不注明类型,7zip会自动识别。
2.加密文件
为方便演示,先将上一例中输出的文件和目录全部删掉。
为压缩后的文件加密可以使用-p参数,如

CODE:
7z a -p temp.7z *

这时要求你输入密码,然后再验证一次,两次完全相同,即可通过。
此时再解压文件的时候就会要求你输入密码,只有密码正确时才能将文件正常解出,否则输出的文件全为空白文件,此时7-zip的输出结果为2,如

CODE:
7z x -ot temp.7z

当然,也可以在-p后紧跟着密码内容,如-p123456,但密码的内容也会留在屏幕上,有泄露的危险。
3.加密文件列表
7-zip仅使用-p压缩出来的文件没有对文件列表进行加密,虽然解压必须通过密码,但文件的列表仍可以通过7z l filename.7z来查看,所以 可以加上参数-mhe=on,来开启对文件列表的加密,可与-p连用(注,此方法仅适用于对7z格式的压缩),如

CODE:
7z a -p -mhe=on temp.7z *

这时,想要查看文件列表就必须通过密码。否则不能查看,如

4.指定压缩级别
压缩级别越高,压缩后的文件所占用的空间就越小,但压缩/解压过程所占用的内存就越高,压缩/解压所需的时间就越长,有时我们需要压缩大文件,或要压缩的所有文件的体积较大,就可能会出现因内存不够而无法压缩/解压的问题,为避免这一问题, 需要调整压缩级别,调整压缩级别的参数是-mx=n,n可取0、1、3、5、7、9,其中0级为仅打包,不压缩。这里为了显示出效果,以一个稍大的文件为例。
首先我们看看默认级别的压缩,执行命令

CODE:
7z a z.7z openschultetable1_x86_64

大约16MB的文件被压缩成了大约3MB。
再看看最高级别

CODE:
7z a -mx=9 z9.7z openschultetable1_x86_64

默认级别和最高级别压缩后的大小相近(但可见默认级别并非最高级别),再看看0级

CODE:
7z a -mx=0 z0.7z openschultetable1_x86_64

0级压缩和原文件的大小非常接近,可以认为0级压缩就是仅打包,不压缩。
5.分卷压缩
如果想把压缩后的文件放到论坛上或邮箱上,但由于文件大小的限制却无法上传,怎么办?7-zip可以满足你, 分卷压缩的参数为-v,用法为-v{Size}[b|k|m|g],比如想将压缩后的文件分为每个文件1MB大小,可以使用-v1m,如
7z a -v1m zv.7z openschultetable1_x86_64

此时,每个文件最大为1M,这个问题就解决了。
6.系统备份
特别注意:7z格式的文件本身存储用户和组信息!
如果直接用于系统备份,则还原后的系统的所有文件的用户和组都将被重置为解压的用户和所在的组!
比如,我将~/temp下目录的几个文件分别设以如下权限:

使用如下命令压缩:

CODE:
7z a temp.7z *

再使用su命令切换到root身份:

CODE:
su

然后解压:

CODE:
7z x -ot temp.7z

看!虽然权限还保留着,但用户和组却变成了解压时的用户和所在的主组。如果直接用于备份全系统,并进行复恢,是很危险的!所以, 需要先打包成tar文件,再压缩成7z格式,但一般两步可合二为一,即(注,在这里,先换回普通用户,便于演示)

CODE:
tar c * | 7za a -si temp.tar.7z

解压怎么办呢?使用如下命令(注,由于前面已换回普通用户,这里再用su切换至root用户):

CODE:
7za x -so temp.tar.7z | tar xv

好,这回可以看到,用户和组的信息就全保留下来了,不过由于这种方法使用-ot参数不再凑效,故删除了原来的文件。
注:man page中给出的压缩的命令格式是

CODE:
tar cf - directory | 7za a -si directory.tar.7z

但tar的参数f的意思是指定输出文件的名称,而这里是向tar的stdout(也就是7z的stdin)输出,所以可以不加f,而加上f后,需要在后面加上"-"才行,否则会出现问题。同理在解压时,如果给tar加上参数f,也需要在后面加上一个"-"(注意空格),即

CODE:
7za x -so directory.tar.7z | tar xf -

7.关于链接
在默认情况下,7zip将符号链接原样保存,现在,我将~/temp目录的结构和内容置为如下图所示

现在,执行ln -s ~/temp/freemind fm命令来创建一个指向freemind目录的链接,然后压缩(注,这里为了突出效果,采用0级压缩,即仅打包),执行命令

CODE:
7z a -mx=0 temp.7z *

使用7z x -ot temp.7z解压,然后用ls -l t查看

可见 压缩档案里对符号链接是以链接形式存放的,再看看硬链接是如何存放的,先删掉t和temp.7z,执行命令

CODE:
ln freemind/openschultetable1_x86_64 schulte
7z a -mx=0 temp.7z *
ls -l temp.7z

可见, 7zip并不能真正地识别出硬链接,在自己的压缩文件中可能会建立两个副本,但在高压缩级别中会识别出两个文件是同一个文件,故可省去不必要的硬盘开支。
有时需要 把符号链接所指向的文件/目录原样放到自己的压缩文件中,而不是存放原链接,这时就需要用到-l参数,但注意: 所压缩的文件中不可以包含递归链接,否则会发生错误!下面,先删除schulte和temp.7z文件,然后执行命令

CODE:
7z a -mx=0 -l temp.7z *

然后输入命令ls -l查看:

此时,就将 符号链接所对应的文件/目录也放进压缩档案中了。

Ubuntu rar 解压乱码问题解决相关推荐

  1. ubuntu 10.10五笔、rar解压及gedit乱码问题的解决

    今天在实验室没什么事,想到前几天重装windows系统时把MBR给写了,硬盘上的ubuntu进不去了,于是又去ubuntu官网上下了一个10.10的版本,现在11.04beta已经可以下载了,不过反正 ...

  2. ubuntu下rar解压工具安装方法

    1.压缩功能 安装 sudo apt-get install rar 卸载 sudo apt-get remove rar 2.解压功能 安装 sudo apt-get install unrar 卸 ...

  3. linux rar解压_linux命令

    文件搜索 打包和压缩文件 Linux下的多用户多任务操作系统 查看文件内容 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 文件的特殊属性 RPM 包 YUM 软件包升级器 DEB 包 安装软件 ...

  4. 7z001怎么解压在安卓手机上面_安卓zip文件压缩RAR解压手机下载-安卓zip文件压缩RAR解压v1.0最新版下载...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

  5. 压缩文件rar解压出现“这个压缩文件格式未知或者数据已经被损坏”

    出现情况: 在一台电脑把一个rar压缩文件复制到另一台电脑上,解压时出现"这个压缩文件格式未知或者数据已经被损坏"错误. 原因: 有可能是复制的不完全,压缩文件真的坏了,但也有可能 ...

  6. linux 解压文件乱码,云服务器:解决linux下zip文件解压乱码问题

    云服务器:解决linux下zip文件解压乱码问题 原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时 ...

  7. linux php 压缩中文乱码,linux下zip文件解压乱码问题的解决办法分享

    本篇文章主要介绍了解决linux下zip文件解压乱码问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/ ...

  8. linux中zip文件编码错误,解决linux下zip文件解压乱码问题

    原标题:解决linux下zip文件解压乱码问题 解决linux下zip文件解压乱码问题 原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此, ...

  9. cordova 安卓文件多选_安卓zip文件压缩RAR解压软件下载-安卓zip文件压缩RAR解压下载v3.0.4安卓版...

    安卓zip文件压缩RAR解压是一款非常好用的手机压缩解压缩神器,在安卓zip文件压缩RAR解压上我们可以看到很多的实用的功能,软件可以帮助我们更好的处理我们手机中的文件,感兴趣的朋友赶紧下载安卓zip ...

最新文章

  1. 百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...
  2. python socket 简介
  3. 批处理命令 / rem :: :
  4. 【机器学习】特征预处理
  5. 滴滴java开发面试题_滴滴java面试重点汇总
  6. hive 自定义元数据表_[一起学Hive]之十四-Hive的元数据表结构详解
  7. hibernate缓存机制与N+1问题
  8. java并发集合面试题,那些经常被问的JAVA面试题(1)—— 集合部分
  9. springboot入门介绍
  10. SpringBoot集成MyBatis-Plus代码生成器(Dao)
  11. UE4材质是什么样的机制
  12. php中file文件操作函数readfile fread fgets fgetc以及不需要加fopen的file_get_contents file_put_contents file()
  13. LaTeX伪代码写法总结
  14. 理解转置卷积与空洞卷积
  15. 福利:appium+selenium+python 模拟手工点击趣头条(app赚钱软件)
  16. windows7 32位系统下好用的一款视频制作工具--Windows live影音制作
  17. 工厂模式,java描述
  18. 用c语言简单的指针求进制,求助!C语言用指针函数实现十进制转,十六进制,八进制,二进制...
  19. PHP语言Web开发ThinkPhp6框架搭建
  20. python利用装饰器进行运行耗时分析

热门文章

  1. 数字签名标准(DSS)
  2. Android给图片加水印
  3. Python实现摄像头实时人脸检测
  4. Applied Energy期刊小白论文投稿模板-流程经验分享
  5. android wi-fi_如何在Android上限制计量Wi-Fi网络的背景数据
  6. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
  7. 阿里“中供系”前世今生:马云麾下最神秘的子弟兵
  8. Python合并有相同列的两个表格
  9. 29 | 无锁的原子操作:Redis如何应对并发访问?
  10. 由114.114.114.114和8.8.8.8学习DNS