当前位置: 首页 > news >正文

tar命令——归档/压缩和解压缩文件

tar命令的功能是将一个或多个文件归档成一个文件,同时可结合gzip、bzip2和xz等压缩命令实现文件的压缩和解压缩。

tar 命令的语法格式如下:

tar [选项] 文件或目录

常用选项如下:

选项作用/含义
-c建立归档文件
-x从归档文件中解出文件
-z通过gzip进行压缩/解压缩,建议文件名为*.tar.gz
-j通过bzip2进行压缩/解压缩,建议文件名为*.tar.bz2
-J通过xz进行压缩/解压缩,建议文件名为*.tar.xz
-v显示压缩/解压缩的处理过程
-f 后接要处理的归档文件名
-t查看归档文件的内容包含有哪些文件
-C后接目录,指定将压缩包解压到该目录中
-p小写p,保留备份数据的原本权限和属性,常用于备份重要的配置文件
-P大写P,保留文件绝对路径,即要求备份文件中含有根目录
-N后接日期,只保存较指定日期更新的文件
-A追加tar文件至归档文件
-r追加文件至归档文件末尾
-u仅追加比归档中副本更新的文件
--exclude=PATTERN在打包压缩时,不将以 PATTERN 指定的文件归档压缩
--remove-files打包/压缩之后删除源文件

特别说明:-c和-x选项不能同时出现;-z、-j和-J等表示压缩技术的选项也不能同时出现。选项-f后面必须紧跟要处理归档文件。

打包/压缩实例演示:

1、使用gzip压缩格式打包/etc目录下所有扩展名为conf的文件,并显示打包压缩过程

[root@myEuler ~]# tar czvf etc_bak.tar.gz /etc/*.conf
tar: 从成员名中删除开头的“/”
/etc/chrony.conf
/etc/dracut.conf
/etc/e2scrub.conf
/etc/fuse.conf
……此处省略部分输出……

2、使用bzip2压缩格式打包/tmp目录,并显示压缩过程

[root@myEuler ~]# tar -cjvf tmp_bak.tar.bz2 /tmp
tar: 从成员名中删除开头的“/”
/tmp/
/tmp/.X1-lock
……此处省略部分输出……

3、将当前工作目录内所有文件打包归档,但不压缩

[root@myEuler ~]# tar cvf bak.tar .
./
./.bash_logout
./.vnc/
……此处省略部分输出……

4、将当前工作目录内所有扩展名为cfg的文件打包,但不压缩,且删除原始文件

[root@myEuler dir1]# tar cvf back.tar *.cfg --remove-files
file3.cfg

 5、备份指定文件/目录,要求保留原文件的权限和属性

[root@myEuler ~]# tar cpzvf sshd_config.tar.gz /etc/ssh/sshd_config 
tar: 从成员名中删除开头的“/”
/etc/ssh/sshd_config

 6、备份文件/目录,要求保留根目录

从前面的示例可以看到,执行压缩时,都会提示【tar: 从成员名中删除开头的“/”】,若要消除该提示,要求保留根目录,则可使用选项-P。

[root@myEuler ~]# tar cPpzvf sshd_config_P.tar.gz /etc/ssh/sshd_config 
/etc/ssh/sshd_config#对比有选项-P和没有-P的区别
# sshd_config.tar.gz压缩包没有使用选项-P
[root@myEuler ~]# tar tvf sshd_config.tar.gz 
tar: 从成员名中删除开头的“/”
-rw------- root/root      5006 2022-11-22 16:51 /etc/ssh/sshd_config# sshd_config1.tar.gz压缩包有使用选项-P
[root@myEuler ~]# tar tvf sshd_config_P.tar.gz 
-rw------- root/root      5006 2022-11-22 16:51 etc/ssh/sshd_config

7、打包压缩某个目录,但要求排除某些文件

在很多时候,我们要对某一个目录打包/压缩,这个目录下有几十个子目录和子文件,现需要排除其中某些目录或文件,这时就需要用到--exclude选项。 

[root@myEuler ~]# ll /etc/ssh/sshd_config 
-rw-------. 1 root root 5006 11月 22 16:51 /etc/ssh/sshd_config#所有以config结尾的文件均被排除
[root@myEuler ~]# tar czvf ssh.tar.gz --exclude=*config /etc/ssh 
tar: 从成员名中删除开头的“/”
/etc/ssh/
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/moduli
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_config.d/
/etc/ssh/ssh_config.d/05-redhat.conf
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_ecdsa_key

注:在openEuler中,--exclude选项必须在必选选项之后,本示例中就不能放在被打包目录/etc/ssh之后。

解包/解压缩实例演示:

8、解包某个归档文件到当前工作目录

[root@myEuler dir1]# tar xvf back.tar 
file3.cfg

9、解压缩某个压缩包至指定目录

注意,这个指定的目录必须事先已存在。

[root@myEuler ~]# mkdir /opt/temp
[root@myEuler ~]# tar xjvf tmp_bak.tar.bz2 -C /opt/temp
tmp/
tmp/.X1-lock
……此处省略部分输出……

10、查看某个压缩包内包含的文件,但要求不进行解包/解压缩

[root@myEuler ~]# tar tvf etc_bak.tar.gz 
-rw-r--r-- root/root      1307 2021-12-16 20:17 etc/chrony.conf
-rw-r--r-- root/root       117 2022-07-28 08:00 etc/dracut.conf
-rw-r--r-- root/root       685 2022-09-23 08:00 etc/e2scrub.conf

http://www.lryc.cn/news/33181.html

相关文章:

  • Softing smartLink网关——推进过程工业数字化转型
  • Spark的常用算子
  • Unity Avatar Cover System - 如何实现一个Avatar角色的智能掩体系统
  • steam/csgo搬砖项目到底真的假的?
  • 【Python笔记20230307】
  • SBOM应该是软件供应链中的安全主食
  • [计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 第二章 计算机的发展及应用(学习复习笔记)
  • Python的数据分析相关的框架
  • 为什么会出现植物神经紊乱 总是检查不出来该怎么办
  • 宏任务和微任务
  • 使用WebSocket、SockJS、STOMP实现消息实时通讯功能
  • C++回顾(十一)—— 动态类型识别和抽象类
  • 雷电模拟器安卓7以上+Charles抓包APP最新教程
  • vsvode 配置sftp,连接远程linux全过程
  • C++类转换为蓝图、打印日志、蓝图关卡、删除C++文件
  • elasticsearch高级篇:核心概念和实现原理
  • 部署安装Nginx服务实例
  • 云原生架构设计原则及典型技术
  • 【Linux】-- 工具介绍 vim_gcc/g++_gdb
  • JAVA SE: IO流
  • 打破原来软件开发模式的无代码开发平台
  • 06-redux中的hook
  • watch监听不到数组对象的变化
  • 言语理解与表达之语句表达
  • 2023年全国最新食品安全管理员精选真题及答案14
  • 【MySQL】约束
  • C语言学习(三)
  • TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
  • k8s学习之路 | k8s 工作负载 ReplicaSet
  • python实现半色调技术图像转换