1、前言
-
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
-
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
-
tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压时可以不加压缩格式参数(如z或j),系统能自动进行分析并解压。
-
把要传输的文件先进行压缩再进行传输,能够很好的提高工作效率,方便分享。
-
tar命令 可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。
2、语法
- 语法格式:
ar 参数 文件或目录
- 常用参数:
参数 | 含义 |
---|---|
-A | 新增文件到以存在的备份文件 |
-B | 设置区块大小 |
-c | 建立新的备份文件 |
-C <目录> | 仅压缩指定目录里的内容或解压缩到指定目录 |
-d | 记录文件的差别 |
-x | 从归档文件中提取文件 |
-t | 列出备份文件的内容 |
-z | 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz |
-Z | 通过compress指令处理备份文件 |
-f<备份文件> | 指定备份文件 |
-v | 显示指令执行过程 |
-r | 添加文件到已经压缩的文件 |
-u | 添加改变了和现有的文件到已经存在的压缩文件 |
-j | 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2 |
-v | 显示操作过程 |
-l | 文件系统边界设置 |
-k | 保留原有文件不覆盖 |
-m | 保留文件不被覆盖 |
-w | 确认压缩文件的正确性 |
-p | 保留原来的文件权限与属性 |
-P | 使用文件名的绝对路径,不移除文件名称前的“/”号 |
-N <日期格式> | 只将较指定日期更新的文件保存到备份文件里 |
– -exclude=<范本样式> | 排除符合范本样式的文件 |
– -remove-files | 归档/压缩之后删除源文件 |
3、简单实例
- 使用gzip压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz:
[root@linuxcool ~]# tar czvf backup1.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/mtab
/etc/fstab
/etc/crypttab
/etc/resolv.conf
/etc/dnf/
………………省略部分输出信息………………
- 使用bzip2压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.bz2: