tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。对于RHEL7、CentOS7版本以后的系统,解压时可以不加压缩格式参数(如z或j),系统能自动进行分析并解压。
把要传输的文件先进行压缩再进行传输,能够很好的提高工作效率,方便分享。
语法格式:tar 参数 文件或目录
常用参数:
-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 | 归档/压缩之后删除源文件 |
实例参考
使用gzip压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz:
[root@liuzhongwei ~]# 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:
[root@liuzhongwei ~]# tar cjvf backup2.tar.bz2 /etc tar: Removing leading `/' from member names /etc/ /etc/mtab /etc/fstab /etc/crypttab /etc/resolv.conf /etc/dnf/ /etc/dnf/modules.d/ /etc/dnf/modules.d/container-tools.module ………………省略部分输出信息………………
将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩:
[root@liuzhongwei ~]# tar cvf backup3.tar *.cfg anaconda-ks.cfg initial-setup-ks.cfg
将当前工作目录内的所有以.cfg为后缀的文件打包,不进行压缩,并删除原始文件:
[root@liuzhongwei ~]# tar cvf backup4.tar *.cfg --remove-files anaconda-ks.cfg initial-setup-ks.cfg
解压某个压缩包到当前工作目录:
[root@liuzhongwei ~]# tar xvf backup4.tar anaconda-ks.cfg initial-setup-ks.cfg
解压某个压缩包到/etc目录:
[root@liuzhongwei ~]# tar xvf backup4.tar -C /etc anaconda-ks.cfg initial-setup-ks.cfg
查看某个压缩包内文件信息(无需解压):
[root@liuzhongwei ~]# tar tvf backup4.tar -rw------- root/root 1256 2022-05-18 08:42 anaconda-ks.cfg -rw-r--r-- root/root 1585 2025-05-18 08:43 initial-setup-ks.cfg