首页 > 编程笔记 > Linux命令 阅读:66

Linux tar命令:压缩和解压缩文件

通义灵码
在 Linux 中,tar 命令的功能是压缩和解压缩文件,能够制作出 Linux 系统中常见的tar、tar.gz、tar.bz2等格式的压缩包文件。

Linux 命令的语法格式如下:
tar 参数 压缩包名 文件或目录名
常用参数见下表:

参 数 功 能 参 数 功 能
-A 添加文件到已存在的压缩包 -p 保留原来的文件权限与属性
-B 设置区块大小 -P 使用绝对路径
-c 创建新的压缩 -t 显示压缩包的内容
-C 解压缩到指定目录 -u 更新压缩包内的文件
-d 记录文件的差别 -v 显示执行过程详细信息
-f 指定压缩包文件 -w 确认压缩包的完整性
-j 使用bzip2压缩格式 -x 从压缩包内提取文件
-l 设置文件系统边界 -z 使用gzip压缩格式
-m 保护文件不被覆盖 --exclude 排除指定的文件不压缩
-N 只将较新日期的文件保存到压缩包中 --remove-files 操作完成后删除源文件

对于 RHEL 7、CentOS 7 版本及以后的系统,解压缩时不添加格式参数(如 z 或 j),系统也能自动进行分析并解压。把要传输的文件先压缩再传输,能够很好地提高工作效率,方便分享。

【实例 1】使用 gzip 压缩格式对指定目录进行打包操作,显示压缩过程,压缩包规范后缀为 .tar.gz:
[root@linux ~]# tar czvf File.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/mtab
/etc/fstab
/etc/crypttab
/etc/resolv.conf
/etc/dnf/
………………省略部分输出信息………………

【实例 2】使用 bzip2 压缩格式对某个目录进行打包操作,显示压缩过程,压缩包规范后缀为 .tar.bz2:
[root@linux ~]# 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
………………省略部分输出信息………………

【实例 3】将当前工作目录内所有以 .cfg 为后缀的文件打包,不进行压缩:
[root@linux ~]# tar cvf File.tar *.cfg
anaconda-ks.cfg
initial-setup-ks.cfg

【实例 4】将当前工作目录内所有以 .cfg 为后缀的文件打包,不进行压缩,并删除原始文件:
[root@linux ~]# tar cvf File.tar *.cfg --remove-files
anaconda-ks.cfg
initial-setup-ks.cfg

【实例 5】解压指定压缩包到当前工作目录:
[root@linux ~]# tar xvf File.tar
anaconda-ks.cfg
initial-setup-ks.cfg

【实例 6】解压指定压缩包到/etc目录:
[root@linux ~]# tar xvf File.tar -C /etc
anaconda-ks.cfg
initial-setup-ks.cfg

【实例 7】查看某个压缩包内文件信息(无须解压):
[root@linux ~]# 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

相关文章