Linux文件压缩与解压

tar详解

参数

-c: 建立压缩档案 
-x:解压 
-t:查看内容 
-r:向压缩归档文件末尾追加文件 
-u:更新原压缩包中的文件
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 必须参数,使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

压缩

tar –cvf jpg.tar *.jpg       # 将目录里所有jpg文件打包成 tar.jpg 
tar –czf jpg.tar.gz *.jpg    # 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,命名为 jpg.tar.gz 
tar –cjf jpg.tar.bz2 *.jpg   # 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,命名为jpg.tar.bz2 
tar –cZf jpg.tar.Z *.jpg     # 将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 compress 压缩,生成一个 umcompress 压缩过的包,命名为jpg.tar.Z 
rar a jpg.rar *.jpg          # rar格式的压缩,需要先下载 rar for linux 
zip jpg.zip *.jpg            # zip格式的压缩,需要先下载 zip for linux

解压

tar –xvf file.tar         # 解压 tar 包 
tar -xzvf file.tar.gz     # 解压 tar.gz 
tar -xjvf file.tar.bz2    # 解压 tar.bz2 
tar –xZvf file.tar.Z      # 解压 tar.Z 
unrar e file.rar          # 解压 rar 
unzip file.zip            # 解压 zip 

总结

Linux系统是不存在由后缀名确定文件类型的,有些文件在命名的时候可能没有后缀,或后缀与实际文件类型不同,导致报错的情况
比如:<>使用tar zxf xxx.tar.bz2解压文件报错:gzip: stdin: not in gzip format<>

在不确定文件类型时可通过file命令来查看文件类型,然后根据文件类型来使用

查看文件类型

ile命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

file File_Name

选项

压缩、解压命令详解

.tar

tar是打包格式,不是压缩格式

# 解包
tar xvf File_Name.tar
# 打包
tar cvf File_Name.tar File_Or_Dir_Name

.gz

# 解压
gunzip File_Name.gz
gzip -d File_Name.gz
# 压缩
gzip File_Name

.tar.gz/.tgz

tar调用gzip完成压缩和解压的操作

# 解压
tar zxvf File_Name.tar.gz
# 压缩
tar zcvf File_Name.tar.gz File_Or_Dir_Name

bz

# 解压
bzip2 -d File_Name.bz
bunzip2 File_Name.bz
# 压缩 无

.tar.gz

# 解压
tar jxvf File_Name.tar.bz
# 压缩 无

.bz2

# 解压
tar bzip2 -d File_Name.bz2
bunzip2 File_Name.bz2
# 压缩
bzip2 -z File_Name

tar.bz2

# 解压
tar jxvf File_Name.tar.bz2
# 压缩
tar jcvf File_Name.tar.bz2 File_Or_Dir_Name

.Z

# 解压
uncompress File_Name.Z
# 压缩
compress File_Name

.tar.Z

# 解压
tar Zxvf File_Name.tar.Z
# 压缩
tar Zcvf File_Name.tar.Z File_Or_Dir_Name

.zip

# 解压
unzip File_Name.zip    # 解压到当前目录
unzip File_Name.zip -d Dir    # 解压到指定目录
# 压缩
zip File_Name.zip File_Or_Dir_Name

.rar

# 解压
rar x File_Name.rar
# 压缩
rar a File_Name.rar File_Or_Dir_Name

.lha

# 解压
lha -e File_Name.lna
# 压缩
lna -a File_Name.lha File_Name

.rpm

# 解包
rpm2cpio File_Name.rpm | cpio -div

.deb

# 解包
ar p File_Name.deb data.tar.gz | tar zxf -

万能

.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea

安装sEx
下载解压后将其中的可执行文件sEx拷贝到 /usr/bin目录(其他由$PATH环境变量指定的目录也可)

sEx只是调用相关程序,本身并无压缩、解压功能,所以对相应的格式压解包时需要安装有相关压缩程序

# 解压
sEx x File_Name.*
# 压缩
sEx a File_Name.* File_Name