【Linux基础】压缩和解压
Linux 常用的压缩与解压文件类型:.tar,.gz、.tar.gz,.bz2、.tar.bz2,.Z、.tar.Z,.zip,.rar等。
Linux 常用的压缩与解压缩命令有:tar,gzip、gunzip,bzip2、bunzip2,compress 、uncompress, zip、 unzip,rar、unrar 等。
Summary:
压缩:
tar -cvf jpg.tar *.jpg // 将目录里所有jpg文件打包成 jpg.tar tar -czf jpg.tar.gz *.jpg // 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 gzip 压缩,生成一个命名为 jpg.tar.gz 的压缩包 tar -cjf jpg.tar.bz2 *.jpg // 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 bzip2 压缩,生成一个命名为jpg.tar.bz2 的压缩包 tar -cZf jpg.tar.Z *.jpg // 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 compress 压缩,生成一个命名为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
小结:
1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用 tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用 tar –xZf 解压 8、*.rar 用 unrar e 解压 9、*.zip 用 unzip 解压
1. 压缩
1.1 打包成 .tar 文件:
最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。生成 tar 包后,就可以用其它的程序来进行压缩了。
实例:
下面这条命令是将所有 .jpg 的文件打成一个名为 all.tar 的包。-c 是表示产生新的包,-f 指定包的文件名。
# tar -cf all.tar *.jpg
下面这条命令是将所有 .gif 的文件增加到 all.tar 的包里面去,-r 是表示增加文件的意思。
# tar -rf all.tar *.gif
下面这条命令是更新原来 tar 包 all.tar 中 logo.gif 文件,-u 是表示更新文件的意思。
# tar -uf all.tar logo.gif
下面这条命令是列出 all.tar 包中所有文件,-t 是列出文件的意思。
# tar -tf all.tar
为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能。这就是 tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。
tar 参数:
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数 -f 是必须的:
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
1.2 压缩成 .tar.gz 文件
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,包名为 all.tar.gz。
# tar -czf all.tar.gz *.jpg //tar 中使用 -z 这个参数来调用gzip
gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序是 gunzip。tar 中使用 -z 这个参数来调用gzip。
1.3 压缩成 .tar.bz2 文件
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,包名为 all.tar.bz2。
# tar -cjf all.tar.bz2 *.jpg //tar 中使用 -j 这个参数来调用 bzip2
1.4 压缩成 .tar.Z 文件
这条命令是将所有 .jpg 的文件打成一个 tar 包,并且将其用 compress 压缩,生成一个 compress 压缩过的包,包名为 all.tar.Z。
# tar -cZf all.tar.Z *.jpg //tar 中使用 -Z 这个参数来调用 compress
1.5 压缩成 .zip 文件
# zip all.zip *.jpg // 将所有 .jpg 的文件压缩成一个 zip 包
# zip -r filename.zip filename // 压缩单个目录命令
# zip -r filename.zip file1 file2 file3 /usr/work/school // 把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中
Liunx服务器上默认没有安装zip命令,所以使用时需安装:
apt-get install zip 或 yum install zip
Linux安装unzip命令:
apt-get install unzip 或 yum install unzip
1.6 压缩成 .rar 文件
要在 linux 下处理 .rar 文件,需要安装 RAR for Linux。下载地址:http://www.rarsoft.com/download.htm,下载后安装即可。
# tar -xzpvf rarlinux-x64-5.6.b5.tar.gz
# cd rar
# make
这样就安装好了,安装后就有了 rar 和 unrar 这两个程序,rar 是压缩程序,unrar 是解压程序。
这条命令是将所有 .jpg 的文件压缩成一个 rar 包,名为 all.rar,该程序会将 .rar 扩展名将自动附加到包名后。
# rar a all *.jpg
2.解压
2.1 解压 .tar 结尾的文件:
# tar -xf all.tar //-x 是解开的意思,-f 指定包的文件名
2.2 解压 .tar.gz 或 .tgz 文件:
# tar -xzf all.tar.gz //-x 是解开的意思,tar 中使用 -z 这个参数来调用gunzip,-f 指定包的文件名
# tar -xzf all.tgz
解压 .gz 文件:
gunzip all.gz
2.3 解压 .tar.bz2 文件
# tar -xjf all.tar.bz2 //-x 是解开的意思,tar 中使用 -j 这个参数来调用bunzip2,-f 指定包的文件名
解压 .bz2 文件:
bunzip2 all.bz2
2.4 解压 .tar.Z 文件
# tar -xZf all.tar.Z //-x 是解开的意思,tar 中使用 -Z 这个参数来调用uncompress,-f 指定包的文件名
解压 .Z 文件:
uncompress all.Z
2.5 解压 .zip 文件
unzip all.zip
2.6 解压 .rar 文件
要在 linux 下处理 .rar 文件,需要安装 RAR for Linux。详情请看章节1.6。
# unrar e all.rar
References
Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解