天天看点

Linux必杀(十六):打包命令tar

题记:

tar 的参数非常多。挑重点的讲几个。

tar [-j|-z] [cv] [-f 新建的文件名] filename  <==打包与压缩
tar [-j|-z] [tv] [-f 新建的文件名]  <==查看文件名
tar [-j|-z] [xv] [-f 新建的文件名] [-c目录] <==解压缩

参数:
-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打包。           

其实简单的使用只需要记住下面三个命令就够了:

1.压缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或者目录名称。

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

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

例一、使用tar加入-j或者-z的参数备份/etc/目录

有事没事备份一下/etc这个目录是个好习惯。

root@wd:~# tar -jpcv -f /root/etc.tar.bz2 /etc
           

ps:建议加上“-p”这个参数的原因是为了保存原本文件的权限与属性

例二、仅解压单一目录

ps: |配合grep可以选取关键字

例三、将文件解开

root@wd:~# tar -jxv -f 打包文件.tar.bz2 待解开的文件名
root@wd:~# tar -jxv -f /root/etc.tar.bz2 etc/shadow
etc/shadow
root@wd:~# 
           

例四、利用管道命令与数据流

在tar的使用中,有一种方式很特殊,那就是通过标准的输入输出的数据流重定向,以及管道命令的方式,将待处理的文件一边打包一边解压缩到目标目录中去。

将/etc 整个目录一边打包一边在/tmp中解开

root@wd:/tmp# tar -cvf - /etc | tar -xvf -
           

继续阅读