Linux下文件压缩与打包管理
Shell命令常用文件压缩与解压工具
在Red Hat Linux中,用户更多的是使用shell命令行。可以使用gzip、bzip2、和zip。另外,还可以自己安装linux的rar软件。
常用压缩解压工具
.gz gzip gunzip
.bz2 bzip2 bunzip2
.zip zip unzip
zip与unzip工具
.zip
文件类型的压缩文件在很多操作系统中都被广泛使用。在windows环境下,winzip软件就是专门处理.zip文件类型的压缩文件。在Linux操作
系统下,.zip文件是一种常见的压缩文件类型,用户可以使用zip命令对文件进行压缩,使用unzip命令对已经压缩的软件进行解压。主要参数如下:
-m 压缩文件后,自动删除原始文件
-r 进行递归处理,压缩包括子文件夹
-j 不压缩子文件夹
-k 支持windows环境下的8.3格式(8位主文名,3位扩展名)压缩文件
-m 直接保存,不压缩
-x 排除文件
-1~9 压缩率。压缩率越高,速度越慢,占用硬盘空间越少。
# zip test.zip *.txt //将所有.txt文件压缩到test.zip中,可以不使用后缀
# zip -r test4 ./* //所有内容,有一个文件夹
gzip与ungzip工具
.gz文件是Linux下另一种常见的文件格式,这种文件类型用gzip命令压缩,用ungzip解压。但gzip不能将多个文件压缩在一起,所以在使用时,一般与归档工具tar一起使用。其主要参数如下:
-d 目录中的所有文件压缩
-S 定制扩展名
-l 查找压缩文件内容
bzip2与bunzip2工具
要使用bzip2来压缩文件,在shell提示下键入以下命令:
# bzip2 filename
文件即会被压缩并保存为filename.bz2
# bunzip2 filename.bz2
filename.bz2文件会被删除
可以使用bzip2命令同时处理多个文件和目录,其方法是将它们逐一列出,并用空格间隔,如下所示:
# bzip2 filename.bz2 file1 file2 file3 /usr/work/school
此命令把file1、file2、file3和/usr/work/school目录的内容(假设这个目录存在)压缩后放入filename.bz2文件。
rar工具
rar工具并没有包含在Red Hat Linux9中,但是目前rar类型的压缩文件很多,读者可以在网络上下载免费的应用于Linux操作系统的rar压缩解压软件。用法如下:
# rar <命令> -<选项1> ....-<选项N> <操作文档> <文件...> <@文件列表...> <解压路径>
rar命令由一个主命令加若干选项(可选)构成,操作文档为.rar文件对象,文件或文件列表为对操作文档实现修饰的具体文件或目录(可选)。
添加文件到操作文档
# rar a test.rar file1.txt
表示若test.rar文件不存在,则打包file1.txt文件成test.rar。若test.rar文件已经存在,则添加file1.txt文件到test.rar中。
对目录进行操作
# rar a test.rar dir1
对操作文档添加说明注释
# rar c test.rar
会出现Reading comment from stdin提示,然后输入一行或多行注释,以ctrl+d结束。
从文档中删除文件
# rar d test.rar file1.txt
修复文档
#rar r test.rar
解压文档中内容到当前目录
# rar x test.rar
一个rar操作只能有一个命令,但可以设置多个选项。
cl 将文件名转换为小写
cu 将文件名转换为大写
# rar a -cl test.rar File.txt
File.txt在添加进test.rar之后,变为file.txt
df文档操作后删除源文件
# rar a -df test.rar file1.txt file2.txt dir1
将file1.txt,file2.txt,dir1压缩到test.rar中之后,删除源文件。
ed 不添加空目录
# rar a -ed test.rar dir1
添加dir1到test.rar中时,不对空目录进行操作
k锁定文件
# rar a -k test.rar file1.txt
p[passwork] 设定密码
# rar a test.rar *.txt -p prettygirl
压缩文件设定密码为prettygirl,解压时,如果不输入密码将无法进行操作,如果觉得明密码太过暴露,可以使用:
# rar a test.rar *.txt -p
这样rar程序会询问用户要使用什么密码,但不回显。
x<file> 排除特定的文件
# rar x test.rar -x *.txt
文件打包工具
tar文件是几个文件和(或)目录在一个文件中的集合。tar使用的选项如下所示。
-c 创建一个新归档
-f 当与-c选项一起使用时,创建的tar文件使用该选项指定的文件名;当与-x选项一起使用时,则解除该选项指定的归档。
-t 显示包括在tar文件中的文件列表
-v 显示文件的归档进度
-x 从归档中抽取文件
-j 使用bzip2来压缩tar文件
要创建一个tar文件,键入命令:
# tar -cvf filename.tar directory/file
在以上的例子中,filename.tar表示创建的文件,directory/file表示想放入归档文件内的文件和目录。可以使用tar命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
# tar -cvf filename.tar /home/mine/work /home/mine/school
上面的命令把/home/mine目录下的work和school子目录内的所有文件都放入当前目录中一个叫做filename.tar的新文件内。要列出tar文件的内容,键入:
# tar -tvf filename.rar
要抽取tar文件的内容,键入:
# tar -xvf filename.tar
这
个命令不会删除tar文件,但是会把被解除归档的内容复制当前的工作目录下,并保留归档文件所使用的任何目录结构。例如,如果这个tar文件中包含一个名
为bar.txt的文件,而这个文件包含在foo/目录中,那么,抽取归档文件将会导致在当前的工作目录中创建foo/目录,该目录中包含bar.txt
文件。
另外,tar默认只归档文件,并不压缩文件。要创建一个使用tar和bzip来归档压缩的文件,使用-j选项:
# tar -cjvf filename.tbz file
用
bzip2压缩的tar文件具有.tbz扩展名。有时用户使用tar.bz2扩展名来归档他们的文件。以上命令创建了一个归档文件,然后将其压缩为
filename.tbz文件。如果使用bunzip2命令为filename.tbz文件解压,filename.tbz文件会被删除,代之以
filename.tar文件。还可以用如下命令来扩展并解除归档bziptar文件:
# tar -xjvf filename.tbz
要创建一个用tar和gzip归档并压缩的文件,使用-z选项:
# tar -czvf filename.tgz file
使
用gzip来压缩的tar文件具有.tgz扩展名。这个命令创建归档文件
filename.tar,然后把它压缩为filename.tgz文件(文件filename.tar不被保留)。如果使用gunzip命令来给
filename.tgz文件解压,filename.tgz文件会被删除,并被替换为filename.tar。还可以用单个命令来扩展
gzip.tar文件:
# tar -xzvf filename.tgz