对许多用户来说,在DOS和Windows环境下利用工具软件ARJ、Winzip等,压缩或解压文件是比较容易的事。但是,在Linux中如何对文件进行压缩与解压呢?本文基于Red Hat,介绍了压缩与解压文件的几种方法与技巧,希望对读者有一定的帮助。
[@more@]命令: compress格式: compress 选项 文件列表
功能: 用Lempel-ziv压缩方法来压缩文件或压缩标准输入
选项: -r 递归操作,如果指定目录变元,则压缩该目录及其子目录中的所有文件。
-c 将压缩数据返回标准输出,而缺省情况下为压缩文件时将压缩数据返回文件。
-v 显示每个文件夹的压缩百分比。
解释: 在用compress压缩文件时,将在原文件名之后加上扩展名.Z。如果不指定文件,则压缩标准输入,其结果返回标准输出。
实例: 目的:压缩/mnt/lgx/a1.doc文件
命令:#compress /mnt/lgx/a1.doc
结果:压缩后生成a1.doc.Z文件。
命令: uncompress格式: uncompress 选项 文件列表
功能: 解压缩用compress 程序压缩过的文件
选项: -c 它将压缩数据发往标准输出而不是改写旧的压缩文件
解释: 如果不指定文件,则解压缩标准输入。缺省-c时,为解压缩。
实例: 目的:解压缩/mnt/lgx/a1.doc.Z
命令:# uncompress /mnt/lgx/a1.doc.Z
命令: gzip
格式: gzip 选项 文件目录列表
功能: 用Lempel-ziv编码压缩文件
选项: -c 压缩结果写入标准输出,原文件保持不变。缺省时gzip将原文件压缩为.gz文件,并删除原文件。
-v 输出处理信息。
-d 解压缩指定文件。
-t 测试压缩文件的完整性。
解释: 值得一提的是,gzip比compress压缩更加有效。
实例: 目的:压缩/mnt/lgx/a1.doc
命令:#gzip -v /mnt/lgx/a1.doc
结果:产生a1.doc.gz的压缩文件
命令: gunzip
格式: gunzip 选项 文件列表
功能: 解压缩用gzip命令(以及compress和zip命令)压缩过的文件
选项: -c 将输出写入标准输出,原文件保持不变。缺省时,gunzip将压缩文件变成解压缩文件。
-l 列出压缩文件中的文件而不解压缩。
-r 递归解压缩,深入目录结构中,解压缩命令行变元所指定目录中的所有子目录内的文件。
实例: 目的:解压缩/mnt/lgx/a1.doc.gz
命令:#gunzip /mnt/lgx/a1.doc.gz
命令: tar格式: tar 选项 文件目录列表
功能: 对文件目录进行打包备份
选项: -c 建立新的归档文件
-r 向归档文件末尾追加文件
-x 从归档文件中解出文件
-O 将文件解开到标准输出
-v 处理过程中输出相关信息
-f 对普通文件操作
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
实例1: 目的:用tar打包一个目录下的文件
命令:#tar -cvf /mnt/lgx/a1.doc
结果:产生一个以.tar为扩展名的打包文件
实例2: 目的:用tar解开打包文件
命令:#tar -xvf /mnt/lgx/a1.doc.tar
附加说明:在通常情况下,tar打包与gzip(压缩)经常联合使用,效果更好。方法是:
首先用tar打包,如:#tar -cvf /mnt/lgx/a1.doc (产生a1.doc.tar文件)
然后用gzip压缩a1.doc.tar文件,如:#gzip /mnt/lgx/a1.doc.tar (产生a1.doc.tar.gz文件)
实例3: 目的:解压a1.doc.tar.gz文件
方法1:
#gzip -dc /mnt/lgx/a1.doc.tar.gz (产生a1.doc.tar文件)
#tar -xvf /mnt/lgx/a1.doc.tar (产生a1.doc文件)
这两次命令也可使用管道功能,把两个命令合二为一:
#gzip -dc /mnt/lgx/a1.doc.tar.gz | tar -xvf
方法2:使用tar提供的自动调用gzip解压缩功能
#tar -xzvf /mnt/lgx/a1.doc.tar.gz
经过tar打包后,也可用compress命令压缩(注:gzip比compress压缩更加有效),产生一个以.tar.Z的文件,在解包时,可先用 “uncompress 文件名”格式解压,然后用“tar -xvf 文件名”解包。也可直接调用“tar -Zxvf 文件名”解包。
压缩文件的 zip 命令
那么常用的zip命令!如压缩当前路径下的aaa目录和其下的东东并检验,可用:
zip -r -T -9 aaa.zip aaa/
zip 可用来压缩文件,如果我们有许多文件需要做压缩,甚至可以将它们一并处理并压缩成一个文件。以下是 zip 的语法以及可用的参数介绍 :
其实 zip 最常用的方法是在后面加上压缩后的文件名,以及要压缩的文件即可。
因为 zip 命令在许多 OS 平台都有,而且参数相当多,在此我只介绍一些 Linux 上适用的参数 :
-1 : 最快压缩,压缩率最差。
-9 : 最大压缩,压缩率最佳。
-b : 暂存文件的路径。这个参数一般在要产生的 zip 文件存在,而硬盘现有空间不足时。
-c : 替新增或更新的文件增加一行注解。
-d : 从 zip 文件移出一个文件。
-D : 不要在 zip 文件中储存文件的目录信息。
-f : 以新文件取代现有文件。
-F : 修复已经损毁的压缩文件。
-g : 将文件压缩附加到 zip 文件中。
-h : 显示辅助说明。
-i : 指定要含入的某些特定文件。
-j : 只储存文件的名称,不含目录。
-k : 强迫使用 MSDOS 格式文件名。
-l : 将 CR ( Carriage Return ) LF ( Line Feed ) 转换成 LF,一般是要将 MS-DOS 上的文本文件压缩后拿到 UNIX 下使用时才使用此参数。这只适用于文本文件 ( .txt ),如果用于二进制文件则会造成二进制文件损毁。
-L : 显示 zip 命令的版权。
-m : 将特定文件移入 zip 文件中,并且删除特定文件。
-n : 不压缩特定扩展名的文件。
-o : 将 zip 文件的时间设成最后修正 zip 文件的时间。
-q : 安静模式,不会显示相关讯息和提示。
-r : 包括子目录。
-t : 只处理 mmddyy 日期以后的文件。
-T : 测试 zip 文件是否正常。
-u : 只更新改变过的文件和新文件。
-v : 显示版本资讯或详细讯息。
-x : 不需要压缩的文件。
-y : 将 symbolic link 压缩,而不是压缩所连结到的文件。
-z : 为 zip 文件增加注解。
-# : 设定压缩速度,-0 表示不压缩,-1 表示最快速度的压缩,
-9 表示最慢速度的压缩 ( 最佳化的压缩 ),预设值为 -6。
-@ : 从标准输入读取文件名称。
rar命令使用说明
rar无疑是当前最各平台上最优秀的压缩软件之一。具有压缩比大,可设定性强,容错性好等优点。目前Linux版本的rar为3.20版,可以免费使用,在
http://www.rararchiver.com/download.html
下载。
据我所知,目前所有的压缩软件中,rar的压缩率是最高的(winace的压缩比曾经比rar还高,但是当rar出到3.0以后,这个桂冠就被rar夺去了)。
rar价格便宜量又足,我一直用它。以下是我所熟悉rar的最常用的用法,倘有佯谬之处还请指正。
源码:
rar
用法: rar - ....-
通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,
文件或文件列表为对操作文档实现修饰的具体文件或目录(可选)。
rar常用命令主要有
a 添加文件到操作文档
eg. rar a test.rar file1.txt 若test.rar文件不存在,则打包file1.txt文件成test.rar
rar a test.rar file2.txt 若test.rar文件已经存在,则添加file2.txt文件到test.rar中(这样
test.rar中就有两个文件了)
注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件
另,对目录也可以进行操作
eg. rar a test.rar dir1
c 对操作文档添加说明注释
eg. rar c test.rar
(会出现Reading comment from stdin字样,然后输入一行或多行注释,以ctrl+d结束)
cf 添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释
cw 将文档注释写入文件
eg. rar cw test.rar comment.txt
d 从文档中删除文件
eg. rar d test.rar file1.txt
e 将文件解压到当前目录
eg. rar e test.rar
注,用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连dir1里面的所有文件
也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压
k 锁定文档
eg. rar k test.rar 锁定文档后,该文档就无法进行任何更新操作了
r 修复文档
eg. rar r test.rar
当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用)
s 转换文档成自解压文档
eg. rar s test.rar
会生成一个test.sfx的可执行文档,运行它的效果就相当于rar x test.rar,
适合于向没有rar的用户传输文件
t 检测文档
eg. rar t test.rar
检测test.rar的完整性,一般压缩完大型文件准备传输前最好用这个命令来确保文件的正确性
x 带路径解压文档中内容到当前目录
eg. rar x test.rar
这样解压的话,dir1就会保持原来的目录结构
以上就是rar的常用命令,一个rar操作只能有一个命令,而选项却可以有多个。
rar选项有很多,在此无法一一说明,只示范经常使用的几个
cl 将文件名转换为小写
cu 将文件名转换为大写
eg. rar a -cl test.rar FILe.txt
FILe.txt在添加进test.rar之后,变为file.txt
df 文档操作后删除源文件
eg. rar a -df test.rar file1.txt file2.txt dir1
将file1.txt,file2.txt,dir1压缩到test.rar中之后,删除源文件
ed 不添加空目录
eg. rar a -ed test.rar dir1
添加dir1到test.rar中时,不对空目录进行操作
rar e -ed test.rar
解压test.rar时,不生成空目录
k 锁定文件
eg. rar a -k test.rar file1.txt
等价于rar a test.rar file1.txt
rar k test.rar
m<0..5> 设定压缩比等级(0-存储,3-默认,5-最大)
eg. rar a -m0 test.rar dir1 dir2
将dir1,dir2打包存储到test.rar,不进行实质上的压缩(速度奇快,适合于对无甚可压的文件进行操作
比如avi,jpg等)
rar a -m5 test.rar *.txt *.bmp
将当前目录下的txt文件和bmp文件打包压缩到test.rar中,使用最大压缩比(最慢)
ms[ext;ext] 特定文件采用非压缩方式
eg. rar a -m5 -ms avi;jpg;jpeg test.rar /home
将home目录下所有目录和文件归档到test.rar,采用最大压缩,但avi,jpg,jpeg文件不进行压缩
(只是打包进test.rar,因为这些文件即使用最大压缩也压不了多少,不如直接打包节省时间)
o+ 覆盖已有文件
o- 不覆盖已有文件
eg. rar x -o- test.rar
解压test.rar文件,但是如果碰到以存在的文件则不覆盖
ol 将符号链接以链接文件保存,而不是普通文件
ow 保存或者恢复文件所有者的信息(username,group)
这两个是*nix系统特有的命令,很容易理解吧
p[password] 设定密码
eg. rar a test.rar *.txt -p prettygirl
压缩文件设定密码为prettygirl,解压时无密码无法进行操作
如果觉得明码密码太过暴露,可以使用
rar a test.rar *.txt -p
则rar程序会询问你要使用什么密码,不回显
s- 不使用固实压缩
注,固实压缩就是压缩后文档内容不可变更的压缩方式,这和lock不一样。因为使用普通压缩
要照顾以后的插入删除个别文件的需要,就要留下很多操作余地。而固实压缩则不可以对
其内容进行任何更新,所以压缩比是最大的。
sfx[name] 创建自解压文件,这和先用a进行压缩,再用s转换效果是一样的。
t 压缩完毕后进行完整性检验
eg. rar a test.rar /home -t
压缩完毕后进行检验,如果有问题则报错。
ta 仅对data日期后文件进行操作
tb 仅对data日期前文件进行操作
注,date的格式为 YYYYMMDDHHMMSS 这样。
v[k,b] 分卷压缩,每卷大小由后面的size指定
eg. rar a -v15000k -m0 test xvid-fn.avi
对xvid-fn.avi进行打包存储,每卷大小15000k(这种格式在网上发布dvdrip时很流行)
生成的文件名为test.part1.rar,test.part2.rar....(rar 3.20版)
x 排除特定的文件
eg. rar x test.rar -x *.txt
解压test.rar中除*.txt以外的文档
x@> 同上,不过这次所有排除的文件放在list文件列表中
y 所有操作均回答yes
例如有时解压时每碰到相同文件就问是否覆盖(Y/N),加上-y就可以默认选择Yes,不再询问
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/345618/viewspace-1023785/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/345618/viewspace-1023785/