Linux命令(009) -- tar
tar命令可以为Linux的文件和目录创建档案(备份)。利用该命令,可以为某一特定文件创建备份,也可以在档案中改变文件或向档案中加入新的文件;可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件合并称为一个文件以便于网络传输非常有用。
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个压缩文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
一、命令语法
tar(选项)(参数)
二、选项说明
-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式>或--newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。
三、命令参数
文件或目录:指定要打包的文件或目录列表。
四、示例
1.将文件全部打包成tar包
tar -cvf 20161201.tar /backup/20161201 #仅打包,不压缩
tar -zcvf 20161201.tar.gz /backup/20161201 #打包后,以gzip压缩
tar -jcvf 20161201.tar.bz2 /backup/20161201 #打包后,以bzip2压缩
选项f之后的文件档名是自己取的,我们习惯上都用 .tar。如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。
2.查阅tar包中包含哪些文件
tar -ztvf 20161201.tar.gz
由于是使用了gzip压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上z这个选项。
3.将tar包解压缩
tar -zxvf /u03/DSDB/20161201.tar.gz
4.只将tar内的部分文件解压出来
tar -zxvf /u03/DSDB/20161201.tar.gz cf_sp_c-478483010-20161201-01
5.在文件夹当中,比某个日期新的文件才备份
tar -N "2016/11/30" -zcvf 20161201.tar.gz /backup/20161201
6.在打包过程中排除部分文件
tar --exclude scf/service -zcvf scf.tar.gz scf/*
五、问题处理
在执行tar命令时出现:"tar: Removing leading `/’ from member names." 首先要明确,这不是一个故障,而是一条告警信息,tar命令会将绝对路径转化为相对路径。
产生告警提示的原因在于:对于类似于tar -zcvf 20161201.tar.gz /backup/20161201这样一条命令产生的打包文件,解包时会在该tar文件的所在目录中创建"/backup/20161201"这两级目录,对于这样的压缩包,解压方法是使用参数"-C"指解压的目录或使用"-P"参数。所以,在Linux系统中,使用tar命令对文件打包时,一般不建议使用绝对路径。
Linux命令(009) -- tar的更多相关文章
- (转)每天一个Linux命令(8): tar
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...
- 每天一个linux命令(27)--tar命令
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候 tar 命令就是必不可少的一个功能强大的工具.Linux 中最流行的 tar 是麻雀虽小,五脏俱全. tar 命令可以为Linux ...
- 【Linux 命令】- tar 命令
语法 tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Sc ...
- linux 命令——28 tar
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大.tar命令可以为linux的 ...
- Linux命令学习-tar命令
Linux中,tar命令的全称是tape archive,主要作用是压缩和解压文件. 参数说明: -c 创建新的压缩档案 -x 解压档案 -t 列出压缩档案的内容 -z 使用gzip来解压和压缩,文件 ...
- Linux命令:tar命令批量解压方法总结
tar命令批量解压方法总结 (2010-05-24 17:48:46) 转载▼ 标签: tar 批量解压 杂谈 分类: linux学习 由于linux的tar命令不支持批量解压,所以很多网友编写了好多 ...
- linux命令学习——tar
tar命令用来处理压缩,压缩和解压.在linux上经常遇到tar命令,总结如下: tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独 ...
- 2018/04/17 每日一个Linux命令 之 tar
10天没有更新这个每日学习 linux 了,因为实在很忙,晚上还要看会其他知识. 但是也不应该给自己找理由,还是应该每天的坚持下去 -- tar 用于在 linux 解压缩/文件 这个命令下面的参数非 ...
- Linux命令之tar命令
[root@linux ~]# tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令! - ...
随机推荐
- HTML的DIV如何实现水平居中
内部的DIV必须有下面两行代码即可 text-align:center; margin:0 auto; 在IE6中同样可以
- C#中list比数组效率低多少
对于List,即长度不确定的数组而言,十万笔数据*12倍,就是120万笔数据,只需要93ms左右 换成了二维数组,效果也是差不多,78ms,可见list的效率只比double差一点点
- 嵌入式开发之davinci--- mcfw框架介绍
整体上mcfw框架如下图 从中可见其层次是清楚的,link实在基本的驱动之上的,而mcfw是在link之上的api,是通过link来实现相应的功能.可见link是框架中承上启下的层次,通过link来实 ...
- js可视区域图片懒加载
可视区域图片懒加载 实现原理,页面滚动时获取需要懒加载的图片,判断此图片是否在可视区域内,是则设置图片data-src地址为src地址,加载图片. html下载地址 <!DOCTYPE html ...
- 8核 16g 及时释放内存空间
del 释放 大变量 所在内存空间 GB数据
- Struts2中ValueStack结构和总结
[ValueStack和ActionContext的关系] 首先,从结构上来看ValueStack是ActionContext的一个组成部分,是对ActionContext功能的扩展.ActionCo ...
- java语法基础(三)
类和对象 面向对象语言概述 java是一种面向对象的语言,什么是面向对象的语言? 要搞清楚什么是面向对象语言,我们需要相对的了解一下面向过程的语言. java入门阶段,我们又给大家说过一些语言的分类, ...
- mongo13----application set与分片结合
replation set配合分片 打开3台服务器,B服务器()放configserv, C,D服务器(203.204)放置复制集 .203和192.168.1.204分别运行之前的sh start. ...
- mysql查询表的字符集
mysql查询表的字符集 SHOW CREATE TABLE user;
- js页面报错javax.servlet.jsp.PageContext cannot be resolved to a type解决
构建了一个maven项目但是项目创建好的jsp总会报错javax.servlet.jsp.PageContext cannot be resolved to a type,但是不影响项目运行.但总归难 ...