首页 > 代码库 > 文件压缩 gzip/gunzip/bzip2/bunzip2/tar

文件压缩 gzip/gunzip/bzip2/bunzip2/tar

gzip gunzip  比较通用的压缩文件

简单的命令-简单的操作。Linux压缩工具

[root@lab huxiaoming]# gzip 123.txt  #gzip 是直接把源文件压缩之后 不保留源文件的#

[root@lab huxiaoming]# ls

123.txt.gz 2.txt shuzu.sh software_list.log

[root@lab huxiaoming]# gunzip 123.txt.gz #反之亦然#

[root@lab huxiaoming]# ls

1 123.txt 2.txt shuzu.sh software_list.log

bzip bunzip -压缩率更高,新版linux有

[root@lab huxiaoming]# bzip2 123.txt

[root@lab huxiaoming]# ls

1 123.txt.bz2 2.txt shuzu.sh software_list.log

[root@lab huxiaoming]# bunzip2 123.txt.bz2

[root@lab huxiaoming]# ls

1 123.txt 2.txt shuzu.sh software_list.log

tar-文件归档

Examples:

  tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.

  tar -tvf archive.tar # List all files in archive.tar verbosely.

  tar -xf archive.tar # Extract all files from archive.tar.

选项与参数:
-c  :建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename)
-t  :察看打包档案的内容含有哪些档名,重点在察看‘档名’就是了;
-x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
      特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。
-j  :透过 bzip2 的支援进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z  :透过 gzip  的支援进行压缩/解压缩:此时档名最好为 *.tar.gz
-v  :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项啰!
-C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

-p  :保留备份资料的原本权限与属性,常用于备份(-c)重要的设定档
-P  :保留绝对路径,亦即允许备份资料中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!


例如我想把/etc下的所有文件打成一个etc.tar的包,使用高压缩工具bzip2来压缩,后缀名为.bz2  放在/home/huxiaoming中那个


root@lab huxiaoming]# tar cvfj /home/huxiaoming/etc.tar.bz2 /etc

clipboard

这里可以看到使用j参数的好处,压缩比率几乎是默认的4倍

clipboard[1]

  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的档案或目录名称

  • 查 询:tar -jtv -f filename.tar.bz2

  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

三板斧

解压缩命令 tar   建议将-f参数单独的列出来

[root@lab huxiaoming]# tar -jxv -f /home/huxiaoming/etc.tar.bz2 -C /home/huxiaoming/backupetc

复习一下前面的find 命令 删除刚才建立的tar文件

[root@lab huxiaoming]# find /home/huxiaoming/ -name "*tar*" -ok rm {} \;

< rm ... /home/huxiaoming/etc.tar.bz2 > ? yes

< rm ... /home/huxiaoming/etc.tar > ? yes

< rm ... /home/huxiaoming/backupetc/etc/init/start-ttys.conf > ? n

< rm ... /home/huxiaoming/backupetc/etc/redhat-lsb/lsb_start_daemon > ? n

< rm ... /home/huxiaoming/backupetc/etc/xdg/autostart > ? n

< rm ... /home/huxiaoming/backupetc/etc/dbus-1/system.d/Upstart.conf > ? n

< rm ... /home/huxiaoming/backupetc/etc/selinux/targeted > ? n

< rm ... /home/huxiaoming/backupetc/etc/event.d/ck-log-system-restart > ? n

< rm ... /home/huxiaoming/backupetc/etc/event.d/ck-log-system-start > ? n

< rm ... /home/huxiaoming/backupetc/etc/libreport/events.d/tarball_event.conf > ? n