使用tar 命令进行文件的归档和压缩

归档和压缩文件

归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率

tar 命令 作用:打包、压缩文件

这幅图的就是说 123456 这几个文件打包成了一个 a.tar 文件,但是这个 a.tar 还是很大,继续用

gzip 进行压缩,变成了一个更小的压缩文件。

作用:打包、压缩文件;tar 文件是把几个文件和(或)目录集合在一个文件里,该存档文件可以通

过使用 gzip、bzip2 或 xz 等压缩工具进行行压缩后传输

查看 man tar 这里 man 不是男人的意思,是 manual 手册的缩写

用法:tar [OPTION…] [FILE]…

参数:

-c  create  创建文件-x-extract[ˈekstrækt]提取  解压还原文件-v--verbose  显示执行详细过程-f--file  指定备份文件-t--list  列出压缩包中包括哪些文件,不解包,查看包中的内容-C  (大写)--directory

指定解压位置

示例1:给/boot/grub2 目录 打包

[root@xuegod63~]#  tar-cvf grub.tar/boot/grub2/# tar 的参数前可以不使用‘-’[root@xuegod63~]#  tar cvf grub.tar/boot/grub2/[root@xuegod63~]# tar cf grub.tar/boot/grub2/

tar: 从成员名中删除开头的“/”(就是把/根路径删除掉了,就变成了 boot/grub2 相对路径了,解

压时会解压到当前目录,如果不删除,那就是/boot/grub2,当解压的时候就是绝对路径了,就会覆盖

系统中此路径的文件)

[root@xuegod63~]# tar-cf grub.tar/boot/grub2/

tar: 从成员名中删除开头的“/”

[root@xuegod63~]# ls grub.tar[root@xuegod63~]# tar xvf grub.tar #解压缩boot/grub2/boot/grub2/device.map[root@xuegod63~]# ls  boot    #得到 boot  目录grub2

示例2:把两个目录或目录+文件打包成一个归档包:

root@xuegod63~]# mkdir./back[root@xuegod63~]# cp/etc/passwd./back/[root@xuegod63~]# tar-cvf back.tar/boot/grub/root/back//etc/passwdtar:从成员名中删除开头的“/”-rw-r--r--root/root10242020-06-2819:46boot/grub2/grubenv  ###输出内容-rw-r--r--root/root51302020-06-2819:46boot/grub2/grub.cfgdrwxr-xr-x root/root02020-07-0314:23root/back/-rw-r--r--root/root27352020-07-0314:23root/back/passwd-rw-r--r--root/root27352020-06-2819:49etc/passwd

例 3:不解包,查看 tar 中的内容:

[root@xuegod63~]# tar-tvf back.tar            # List all files in archive.tar verbosely.

例 4:对比加 v 的效果

root@xuegod63~]# tar-xf back.tar[root@xuegod63~]# tar-xvf back.tarboot/grub/boot/grub/splash.xpm.gz

tar 归档+压缩

语法:tar czvf newfile.tar.gz SOURCE

语法:tar czvf 压缩后的文件名(tar.gz tar.bz2) 需要压缩的文件或目录

常用参数:

-z,--gzip  以 gzip 方式压缩  扩展名:  tar.gz-j:以 bz2 方式压缩的  扩展名:tar.bz2-J:以 xz 方式压缩      扩展名:tar.xz

示例1:创建.tar.gz 包

[root@xuegod63~]# tar cvf/root/etc.tar/etc[root@localhost test]# tar zcvf/root/etc.tar.gz/etc  #归档,注意备份的名字后缀[root@localhost test]# tar zxvf/root/etc.tar.gz    #解压缩[root@localhost test]# tar xvf/root/etc.tar.gz    #解压缩

示例2:创建.tar.bz2 包

语法:  #tar jcvf newfile.tar.bz2  SOURCE[root@xuegod63~]#  tar-jcvf~/etc.tar.bz2/etc[root@xuegod63~]#  tar-jxvf~/etc.tar.bz2    #解压缩[root@xuegod63~]#  tar-xvf~/etc.tar.bz2    #解压缩[root@xuegod63~]#  tar jxvf~/etc.tar.bz2-C/opt    #解压到 opt  目录下

示例3:创建.tar.xz 包

[root@xuegod63~]#  tar-Jcvf~/etc.tar.xz/etc[root@xuegod63~]#  tar-Jxvf~/etc.tar.xz    #tar.xz  这类包,解压缩[root@xuegod63~]#  tar-xvf~/etc.tar.xz

对比三种压缩方式后压缩比例:

[root@xuegod63~]# time tar zcf/root/etc.tar.gz/etc[root@xuegod63~]# time tar jcf/root/etc.tar.bz2/etc[root@xuegod63~]# time tar Jcf/root/etc.tar.xz/etc[root@xuegod63~]# ll-h etc.tar*(*为通配符,代表任意字符任意次)-rw-r--r--10root28M5月1012:10etc.tar-rw-r--r--10root8.7M5月1012:14etc.tar.bz2#常用-rw-r--r--10root9.8M5月1012:11etc.tar.gz  #常用-rw-r--r--10root7.0M5月1012:16etc.tar.xz  #这个压缩比例最高,压缩的时间是最长

查看源文件大小

[root@xuegod63~]# du-sh/etc31M/etc

etc.tar 包为 28M ,实际几乎没怎么压缩。xz 格式化为 7.0M,传输的时候效率提高很多。

今天就为大家分享到这

你可能感兴趣的:(使用tar 命令进行文件的归档和压缩)