tar命令的功能是压缩和解压缩文件,能够制作出Linux系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。对于RHEL 7、CentOS 7版本及以后的系统,解压缩时不添加格式参数(如z或j),系统也能自动进行分析并解压。把要传输的文件先压缩再传输,能够很好地提高工作效率,方便分享。
语法格式:tar 参数 压缩包名 文件或目录名
常用参数:
-A | 添加文件到已存在的压缩包 | -p | 保留原来的文件权限与属性 | |
-B | 设置区块大小 | -P | 使用绝对路径 | |
-c | 创建新的压缩 | -t | 显示压缩包的内容 | |
-C | 解压缩到指定目录 | -u | 更新压缩包内的文件 | |
-d | 记录文件的差别 | -v | 显示执行过程详细信息 | |
-f | 指定压缩包文件 | -w | 确认压缩包的完整性 | |
-j | 使用bzip2压缩格式 | -x | 从压缩包内提取文件 | |
-l | 设置文件系统边界 | -z | 使用gzip压缩格式 | |
-m | 保护文件不被覆盖 | --exclude | 排除指定的文件不压缩 | |
-N | 只将较新日期的文件保存到压缩包中 | --remove-files | 操作完成后删除源文件 |
参考示例
使用gzip压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为.tar.gz:
[root@linuxcool ~]# tar czvf File.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@linuxcool ~]# tar cjvf File.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@linuxcool ~]# tar cvf File.tar *.cfg anaconda-ks.cfg initial-setup-ks.cfg
将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩,并删除原始文件:
[root@linuxcool ~]# tar cvf File.tar *.cfg --remove-files anaconda-ks.cfg initial-setup-ks.cfg
解压指定压缩包到当前工作目录:
[root@linuxcool ~]# tar xvf File.tar anaconda-ks.cfg initial-setup-ks.cfg
解压指定压缩包到/etc目录:
[root@linuxcool ~]# tar xvf File.tar -C /etc anaconda-ks.cfg initial-setup-ks.cfg
查看某个压缩包内文件信息(无须解压):
[root@linuxcool ~]# tar tvf File.tar -rw------- root/root 1256 2023-05-18 08:42 anaconda-ks.cfg -rw-r--r-- root/root 1585 2023-05-18 08:43 initial-setup-ks.cfg