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
总结
- *.tar 用 tar –xvf 解压
- *.gz 用 gzip -d或者gunzip 解压
- .tar.gz和.tgz 用 tar –xzf 解压
- *.bz2 用 bzip2 -d或者用bunzip2 解压
- *.tar.bz2用tar –xjf 解压
- *.Z 用 uncompress 解压
- *.tar.Z 用tar –xZf 解压
- *.rar 用 unrar e解压
- *.zip 用 unzip 解压
坑
Linux系统是不存在由后缀名确定文件类型的,有些文件在命名的时候可能没有后缀,或后缀与实际文件类型不同,导致报错的情况
比如:<>使用tar zxf xxx.tar.bz2
解压文件报错:gzip: stdin: not in gzip format
<>
在不确定文件类型时可通过file
命令来查看文件类型,然后根据文件类型来使用
查看文件类型
ile命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
file File_Name
选项
-b
:列出辨识结果时,不显示文件名称-c
:详细显示指令执行过程,便于排错或分析程序执行的情形-f<名称文件>
:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称-L
:直接显示符号连接所指向的文件类别-m<魔法数字文件>
:指定魔法数字文件-v
:显示版本信息-z
:尝试去解读压缩文件的内容
压缩、解压命令详解
.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