1.功能说明
tar是Linux下常常使用的归档工具,是对文件或者目录进行打包归档,归成一个文件,可是并不进行压缩。其格式以下:
tar [主选项+辅助选项] 文件或者目录
tar命令的选项不少,这里列出一些常常用到的主选项,如表4.31所示。
表4.31 tar命令的主选项及其说明
主选项 |
含 义 |
-c |
建立新的文件 |
-r |
把要归档的文件追加到档案文件的末尾 |
-t |
列出档案文件中已经归档的文件列表 |
-x |
从打包的档案文件中还原出文件 |
-u |
更新档案文件,用新的文件替换档案中的原始文件 |
辅助选项的详细信息如表4.32所示。
表4.32 tar命令的辅助选项及其说明
辅助选项 |
含 义 |
-z |
调用gzip命令在文件打包的过程当中进行压缩/解压文件 |
-w |
在还原文件时,把全部文件的修改时间设定为如今时间 |
-j |
调用bzip2命令在文件打包的过程当中进行压缩/解压文件 |
-Z |
调用compress命令过滤档案 |
-f |
“-f”选项后面紧跟档案文件的存储设备,默认是磁盘,须要指定档案文件名;若是是磁带,只需指定磁带设备名便可。注意,在“-f”选项以后不能再跟任何其余选项,也就是说“-f”必须是tar命令的最后一个选项 |
-v |
指定在建立归档文件过程当中,显示各个归档文件的名称 |
-p |
在文件归档的过程当中,保持文件的属性不发生变化 |
-N “yyyy/mm/dd” |
在指定日期以后的文件才会被打包到档案文件中 |
--exclude file |
在打包过程当中,不将指定file文件打包 |
2.举例
(1)将/etc目录下的全部文件打包,并显示打包的详细文件,设置打包文件名为etc.tar,同时保存文件到/opt目录下。
[root@dbbackup oracle]#tar -cvf /opt/etc.tar /etc
这里的档案名“etc.tar”名字是咱们本身随便取的,Linux上利用tar命令打包出来的档案文件咱们通常用.tar做为标识。
(2)将/etc目录下的全部文件打包并压缩,而后显示打包的详细文件,设置打包文件名为etc.tar.gz,同时保存文件到/opt目录下。
[root@dbbackup oracle]# tar -zcvf /opt/etc.tar.gz /etc
[root@dbbackup oracle]#tar -jcvf /opt/etc.tar.bz2 /etc
“zcvf”选项表示在打包完成后调用gzip命令对档案文件进行压缩,这里的档案名“etc.tar.gz”也是咱们随便取的,“.tar”表示是用tar命令打包的,“.gz”表示调用了gzip命令进行了压缩。同理,“jcvf”选项表示在打包完成后调用bzip2命令对档案文件进行压缩,档案命名标识中“.bz2”表示调用了bzip2命令进行了压缩处理。
这里对档案文件的取名没有硬性的规定,上面采用的命名规则,能够很方便地让咱们知道文件的类型以及对应的解压方式,由于压缩方式不一样,解压方式也是不一样的。同时,这种规则也是你们都默许了的一种潜规则。若是你不喜欢这种规则,彻底能够按照本身喜欢的方式命名档案文件。
(3)查阅上面/opt/etc.tar.gz压缩包的内容。
[root@dbbackup oracle]#tar -ztvf /opt/etc.tar.gz
[root@dbbackup oracle]#tar -jtvf /opt/etc.tar.gz
注意 |
“etc.tar.gz”可能包含不少个文件,没法一个屏幕显示完毕,这时可使用more命令,好比,tar –zxvf /opt/etc.tar.gz|more。 |
(4)将/opt/etc.tar.gz解压到/usr/local/src下。
[root@dbbackup oracle]#cd /usr/local/src
[root@dbbackup src]#tar -zxvf /opt/etc.tar.gz
通常状况下,能够把/opt/etc.tar.gz在任何地方解开,这里咱们首先切换到了/usr/local/src目录下,而后解开/opt/etc.tar.gz,所以/usr/local/src/etc目录就是咱们解开的目录。
(5)将/etc目录下的全部文件打包备份到/opt目录下,并保存每一个文件的权限。
[root@dbbackup oracle]#tar -zcvpf /opt/etc.tar.gz /etc
(6)在/opt目录下,仅解开/opt/etc.tar.gz压缩文件中的/etc/inittab文件。
[root@dbbackup oracle]# cd /opt
[root@dbbackup opt]#tar –zxvf /opt/etc.tar.gz etc/inittab
咱们首先能够经过“tar –ztvf”查看“etc.tar.gz”文件中包含的文件,而后找到须要解开的文件,经过上面的方式解压。后面指定的须要解压出来的文件必定要是经过“tar –ztvf”显示出来的文件完整路径。这样就在/opt目录下解压出了一个etc目录,而etc目录下的inittab就是咱们须要的文件。
(7)打包备份/var/log目录中2008/7/21之后的文件。
[root@dbbackup oracle]#tar –N “2008/7/21” –zcvf log.tar.gz /var/log
[root@dbbackup oracle]#pwd
/opt/oracle
[root@dbbackup oracle]#ls
log.tar.gz
(8)打包备份/home目录和/etc目录,可是不备份/home下的ixdba目录。
[root@dbbackup oracle]#tar –exclude /home/ixdba -zcvf myfile.tar.gz /home/* /etc
(9)将/etc目录打包压缩后直接解压到/opt目录下,而不生成打包的档案文件。
[root@dbbackup oracle]#cd /opt
[root@dbbackup opt]#tar –zcvf - /etc | tar –zxvf –
在上面的命令中,紧跟在“f”后面的“-”是将建立的档案文件输出到标准输出上,“|”在Linux下表示管道符,命令最后的“-”表示将tar命令经过管道传入的档案文件做为须要解压的数据来源。