tar命令:压缩、解压的好工具

news2024/9/29 14:11:52

一、命令简介

  • 用途: tar​ 命令用于创建归档文件(tarball),以及从归档文件中提取文件。

  • 标签: 文件管理,归档。

  • 特点:

    • 归档文件可以保留原始文件和目录的层次结构,通常使用 .tar ​或 .tar.gz ​作为文件扩展名。
    • 对打包文件进行压缩以节省空间或传输带宽。

二、命令参数

2.1命令格式

tar [选项] [归档文件] [文件或目录]

2.2选项和参数

  • 选项:

    • -c​:创建归档文件(Create)
    • -x​:从归档文件中提取文件(eXtract)
    • -v​:显示详细信息(Verbose)
    • -f​:指定归档文件的名称(File)
    • -z​:使用 gzip 压缩或解压缩(gzip)
    • -j​:使用 bzip2 压缩或解压缩(bzip2)
    • -r​:向归档文件中追加文件(append)
    • -t​:列出归档文件的内容(List)
  • 参数:

    • 归档文件​:要创建或操作的归档文件的名称。
    • 文件或目录​:要添加到归档文件中或从中提取的文件或目录。

三、命令示例

3.1创建归档文件

简单的示例:通过以下命令将文件 file1 和 file2 ,文件夹 catalog 打包到 archive.tar

tar -cvf archive.tar file1 file2 catalog/

压缩:通常,使用 -z 选项压缩 tar 包的体积。接下来我们将/bin 目录下所有内容打包。

#仅打包,不压缩
sudo tar -cvf archive.tar /bin/*

#打包且压缩
sudo tar -czvf archive.tar.gz /bin/*

对比:不压缩为 500MB+,压缩为 200MB+,可见 gz 压缩效果还是很明显的。

Clip_2024-09-28_21-06-39

优点:节省的硬盘体积,减少了网络传输时的流量和时间。

缺点(代价):原本打包、解包可以秒完成。使用压缩后,需要消耗额外的算力和时间来完成压缩、解压过程。即便如此,多数时候,依然选择使用压缩。

3.2列出归档文件

有时我们希望看看 tar 包里面有些什么东西,而不是直接解开它,可以使用以下命令:

tar -tvf archive.tar

例如刚才打包的 tar 包,使用-tvf 就可以看到 tar 包中的文件列表:

Clip_2024-09-28_21-40-40

3.3解压缩归档文件

解包到当前目录


tar -xvf archive.tar

# tar.gz
tar -czvf archive.tar.gz

解包到指定目录

tar -xvf archive.tar -C /path/to/target/directory

例如,将刚才打包的文件解包到 ./dir-test ​目录,目录必须先创建。

mkdir dir-test
tar -xvf archive.tar -C dir-test

如果不想看解包过程,就不要使用-v 选项。

Clip_2024-09-28_22-57-44

3.4测试不同压缩选项

只是片面的测试,不是综合测试。

3.4.1测试
  • -z 选项(已学):使用 gzip 压缩、解压
  • -j 选项:使用 bzip2 压缩、解压

用法是类似的,-z 换成 -j 即可,如下(顺便瞧瞧两种压缩方式的效率,time 命令统计执行时间)

# 打包
## 不压缩
time tar -cf  new.tar     /bin/*
## gzip压缩
time tar -czf new.tar.gz  /bin/*
## bzip2压缩
time tar -cjf new.tar.bz2 /bin/*

# 创建文件夹,用来装解压文件
mkdir 文件夹 文件夹1-gz 文件夹2-bz2

# 解包
## 不压缩
time tar -xf  new.tar    -C 文件夹
## gzip压缩
time tar -xzf new.tar.gz -C 文件夹1-gz
## bzip2压缩
time tar -xjf new.tar.bz2 -C 文件夹2-bz2

3.4.2测试结果

压缩耗时:

  • gzip:28 秒
  • bz2:51 秒
  • 不压缩:1 秒

文件大小:

  • gzip:213 MB
  • bz2:197 MB
  • 不压缩:590 MB

Clip_2024-09-28_23-28-27

解压耗时:

  • gzip:5 秒
  • bz2:23 秒
  • 不压缩:1 秒

Clip_2024-09-28_23-33-43

3.4.3选择压缩选项
  • gzip压缩可以满足大多数情况:既可以压缩体积,也不用等待太久。
  • 不压缩可以秒打包、解包。
  • bzip2可以最大压缩体积。

3.5规范后缀

规范的后缀 .tar​、.tar.gz​、.tar.bz2 ​可以让人一眼分辨出应该使用哪个命令去解压缩包。

Linux 系统不以后缀名来决定文件类型,而是通过文件的 inode 信息来确定。inode 包含了文件的元数据,如文件的大小、创建时间、最后修改时间、权限等,以及一个指向文件数据块的指针。

3.6结语

tar​ 命令是在 Linux 系统中非常常用的工具,用于管理文件和目录的归档和解压缩。通过掌握 tar​ 命令的基本用法,您可以方便地打包和解压文件,进行文件备份和迁移等操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2176958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日OJ题_牛客_HJ108求最小公倍数_C++_Java

目录 牛客_HJ108求最小公倍数_C_Java 题目解析 C代码 Java代码 牛客_HJ108求最小公倍数_C_Java 求最小公倍数_牛客题霸_牛客网 题目解析 A 和 B 的最小公倍数 A * B / 两者的最大公约数。最大公约数&#xff1a;辗转相除法。 C代码 #include <iostream> #includ…

C语言—顺序表(含通讯录项目)

目录 一、顺序表的概念及结构 二、顺序表的分类 &#xff08;2.1&#xff09;静态顺序表 &#xff08;2.2&#xff09;动态顺序表 三、动态顺序表的实现 &#xff08;3.1&#xff09;基本结构定义 &#xff08;3.2&#xff09;初始化和销毁 &#xff08;3.2.1&#xff0…

【MWORKS专业工具箱系列教程】控制系列工具箱第四期:时域分析

本工具箱教程以控制系统模型创建、分析与设计流程为主线&#xff0c;通过大量示例介绍MWORKS控制系统工具箱的功能和具体使用。共计10篇文章&#xff0c;上一篇主要介绍了控制系统连接与化简。 同元软控&#xff1a;【MWORKS专业工具箱系列教程】控制系 列工具箱第三期&#x…

Shopline对接需要注意的问题

Shopline对接是一项复杂而细致的工作&#xff0c;为了确保对接的顺利进行&#xff0c;并保证系统的稳定性和可靠性&#xff0c;需要注意以下几个方面。 1.API文档的详细阅读 功能理解&#xff1a; 仔细阅读Shopline提供的API文档&#xff0c;全面了解每个接口的功能、参数、返…

一起发现CMake太美-01-CMake是什么CMake的前世今生

本系列课程的主要内容包括&#xff1a; 点击本课程的 链接 可以进入视频课程的学习。 下面介绍本系列课程的第一课的主要内容&#xff0c;本节课从CMake是什么&#xff0c;能做什么&#xff0c;以及CMake的远亲近邻入手&#xff0c;让大家对CMake有一个大致的了解。 随后&am…

SpringBoot+MyBatisPlus实现多数据源动态切换

场景&#xff1a; 假设有一个项目&#xff0c;产品数据存放在new数据库中&#xff0c;公告信息存放在mini数据库中&#xff0c;我们要怎么去查询两个数据库中不同的数据呢&#xff1f; 这个时候我们就要用到mybatisplus提供的多数据源&#xff0c;仅需要如下配置即可实现相关…

【C语言从不挂科到高绩点】24-C语言中的枚举【重点知识】

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程!! 本节将为大家讲解C语言中非常重要的知识点-枚举: 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的同学想要考计算机等级证书的同学想…

Anzo Capital昂首资本官网:掌握止损单的艺术,优化交易策略

通过在Anzo Capital昂首资本官网的深入研究&#xff0c;投资者发现宝贵的交易策略&#xff0c;尤其是在市场不活跃的时期&#xff0c;止损单的触发时机往往相当微妙。很多时候&#xff0c;主力的动作似乎开始得更晚&#xff0c;这种情况在交易市场中并不罕见。尽管没有人能够确…

【数据库文档】数据库设计说明书(Word原件参考)

一、 总述 &#xff08;一&#xff09; 编写目的 二、 外部设计 &#xff08;一&#xff09; 环境说明 &#xff08;二&#xff09; 指导 三、 物理实现 &#xff08;一&#xff09; 物理结构 &#xff08;二&#xff09; 安全设计 四、 表设计结构 &#xff08;一&#xff09;…

AutoGen实现多代理—AI Agentic Design Patterns with AutoGen(二)

1. AutoGen顺序对话在客户入职案例上的应用 如图&#xff0c;客户入职前会经历三个阶段&#xff0c;一个代理收集客户的信息&#xff0c;一个代理收集客户的感兴趣话题&#xff0c;一个代理根据前两个代理的基础信息与客户代理对话&#xff0c;产生聊天信息。 本节实验的地址&…

基于SSM+小程序的会议发布与预约管理系统(会议1)(源码+sql脚本+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 本基于微信小程序的会议发布与预约系统管理员功能有个人中心&#xff0c;发布者管理&#xff0c;用户管理&#xff0c;发布会议管理&#xff0c;会议预约管理&#xff0c;留言板管理&…

C++远端开发环境手动编译安装(centos7)

背景 直接使用yum安装&#xff0c;无法安装指定的版本&#xff0c;因为很多版本并没有在镜像仓库中&#xff0c;所以此处进行手动安装指定版本 使用VMWare安装centos7 准备centos镜像 可以自行搜索下载地址&#xff0c;阿里云的也可以 下载VmWare&#xff0c;社区版即可 可…

【第十四周】PyTorch深度学习实践1

目录 摘要Abstract1.反向传播2.线性回归2.1.准备数据集2.2.设计模型2.3.定义损失函数和优化器2.4.模型训练 3.逻辑回归4.处理多维特征的输入5.加载数据集5.1.导入必要的库5.2.准备数据集5.3.定义模型5.4.构建损失函数和优化器5.5.训练模型 总结 摘要 本周主要通过B站刘二大人的…

酒店新科技,飞睿智能毫米波雷达人体存在感应器,智能照明创新节能新风尚

在这个日新月异的时代&#xff0c;科技正以未有的速度改变着我们的生活。从智能手机到智能家居&#xff0c;每一个细微之处都渗透着科技的魅力。而今&#xff0c;这股科技浪潮已经席卷到了酒店行业&#xff0c;为传统的住宿体验带来了翻天覆地的变化。其中&#xff0c;引人注目…

基于SpringBoot+Vue的茶园茶农文化交流平台

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

对已经运行的flask服务测试代码覆盖率

上一篇文章《用pytest-cov获取flask项目的测试代码覆盖率》展示了用pytest的测试用例验证flask的函数&#xff0c;获取代码覆盖率信息。但是上述方法要求web服务没有提前启动&#xff0c;而是由pytest来启动&#xff0c;然后运行测试用例。 那么对于已经启动的web服务&#xff…

【STM32-HAL库】MQ2烟雾传感器使用(STM32F407ZET6)

MQ2可燃气体传感器介绍 MQ2是一种广谱气体传感器&#xff0c;能够检测多种可燃气体和烟雾。它是一种低成本、高灵敏度的传感器&#xff0c;广泛应用于家庭和工业环境中的气体监测。 原理 MQ2传感器的工作原理基于金属氧化物半导体&#xff08;MOX&#xff09;技术。当传感器暴露…

俄罗斯市场合格评定准入认证要求

前言 国内厂家想要把自己的产品顺利出口到俄罗斯市场&#xff0c;就需要基本了解俄罗斯的市场合格评定准入要求。俄罗斯主要实行的认证有EAC(TR-CU/CU-TR)认证、GOST R认证、计量认证和医疗产品国家注册。下面就分别简单介绍一下这几个产品认证。 一、EAC(TR-CU/CU-TR)认证介绍…

LVGL 笔记

在显示GUI的过程中需要对某些对象进行临时隐藏或临时显示,因此需要对该对象的FLAG进行配置就可以实现对象的显示和隐藏了. lv_obj_add_flag(user_obj, LV_OBJ_FLAG_HIDDEN);//隐藏对象 lv_obj_clear_flag(user_obj, LV_OBJ_FLAG_HIDDEN);//取消隐藏 GUI-Guider 中的选项卡 注意…

Linux驱动开发(速记版)--驱动基础

第一章 初识内核源码 Linux系统源码提供了操作系统的核心功能&#xff0c;如进程管理、内存管理、文件系统等。 BusyBox这类的文件系统构建工具&#xff0c;则提供了在这些核心功能之上运行的一系列实用工具和命令&#xff0c;使得用户能够执行常见的文件操作、文本处理、网络配…