一分钟学一个 Linux 命令 - tar

news2024/11/26 18:34:37

前言

大家好,我是 god23bin。今天给大家带来的是 Linux 命令系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天,我们要介绍的是一个常用且强大的命令:tar。

什么是 tar 命令?

tartape archive 的缩写,意思是磁带归档,归档可以视为存档。tar 命令网上很多都提到,它是一个压缩命令,为什么会这样说呢?

实际上,它是用于创建和提取 tar 归档文件的,最初的设计就是用于将多个文件打包到磁带上进行备份。随着时间的推移,tar 命令已经扩展到处理文件和目录的归档和压缩。

tar 命令之所以常被称为压缩命令,是因为它通常与压缩算法结合使用,可以在创建归档时对文件进行压缩,以减小归档文件的大小。这种结合使用压缩算法的方式是出于效率和存储空间的考虑,尤其在处理大量文件或传输文件时特别有用。压缩算法通常是通过选项来指定的。在常见的 tar 命令中,使用 -z 选项表示使用 gzip 压缩算法,-j 选项表示使用 bzip2 压缩算法,而 -Z 选项表示使用 compress 压缩算法。这些压缩算法可以有效地减小文件的大小,并在需要时进行解压缩还原。所以,现在的 tar 命令在许多场景中不仅用于创建和提取归档文件,还常用于压缩和解压缩文件。

如何使用 tar 命令?

tar 命令的基本语法如下:

tar [选项参数] 归档文件名 文件/目录名

其中,选项参数 是可选的,用于指定 tar 命令的不同操作。归档文件名 是要创建或提取的归档文件的名称。文件/目录名 是要打包或提取的文件或目录的名称。

创建归档文件

要创建归档文件,可以使用 -c 选项并指定要创建的归档文件的名称,然后提供要打包的文件或目录的名称。

c 代表 create,意味着创建一个新的归档文件来保存指定的文件和目录。使用 -c 参数时,通常需要结合 -f 参数指定存档文件的名称。f 代表 file,表示后面紧跟着的参数是存档文件的名称。例如,-f archive.tar 指定了归档文件为 archive.tar

tar -c -f 归档文件.tar 文件/目录

举个例子,现在我们在 /opt/games/gta6 目录下有一个 crack 目录,我们想将 crack 目录归档,保存一下,那么就可以要创建名一个为 crack.tar 的归档文件并打包 crack 目录,可以执行以下命令:

tar -c -f crack.tar crack

提取(解压)归档文件

要从归档文件中提取文件或目录,可以使用 -x 选项并指定要提取的归档文件的名称。

x 代表 extract,表示从存档文件中提取归档的文件和目录。使用 -x 参数时,通常需要结合 -f 参数指定要提取的存档文件的名称。

tar -x -f 归档文件.tar

现在,我们把上一步创建的归档文件移动到 model 目录下再进行提取,提取所有文件和目录,可以执行以下命令:

tar -x -f crack.tar

压缩归档文件

tar 命令还支持将归档文件与压缩算法结合使用以减小文件大小。常见的压缩算法包括 gzip (-z)、bzip2 (-j) 和 xz (-J)。

tar -c -z -f 归档文件.tar.gz 文件/目录
tar -c -j -f 归档文件.tar.bz2 文件/目录
tar -c -J -f 归档文件.tar.xz 文件/目录

现在,我们想要把 config4gta6 归档并且压缩,分别使用这 3 种算法压缩,那么可以分别创建名为 config4gta6.tar.gz 的 gzip 压缩归档文件、config4gta6.tar.bz2 的 bzip2 压缩归档文件和 config4gta6.tar.xz 的 xz 压缩归档文件,并打包目录 config4gta6,现在就可以依次执行以下命令:

tar -c -z -f config4gta6.tar.gz config4gta6
tar -c -j -f config4gta6.tar.bz2 config4gta6
tar -c -J -f config4gta6.tar.xz config4gta6

解压归档文件

现在是有了 3 个压缩的归档文件了,那么如何解压呢?聪明的你肯定知道了,就是使用 -x 选项参数。现在我们先将这 3 个压缩归档文件移动到当前的 crack 目录下,在 crack 目录中进行解压。

# 移动 3 个压缩文件到 crack 目录
mv config4gta6.tar.gz config4gta6.tar.bz2 config4gta6.tar.xz crack

接着我们可以根据压缩的算法选择用哪个参数来解压,就是通过 -x-z-j-J 配合使用。

直接解压 gzip 压缩归档文件到当前目录:

tar -x -z -f config4gta6.tar.gz

解压 bzip2 压缩归档文件到指定目录,配置选项参数 -C(大写字母 C,是 Change directory 的缩写,表示改变目录)来指定目录:

tar -x -j -f config4gta6.tar.bz2 -C /opt/games/gta6/model/crack/bz2dir/

解压 xz 压缩归档文件到指定目录:

tar -x -J -f config4gta6.tar.xz -C xzdir/

显示归档文件内容

要查看归档文件中的内容,可以使用 -t 选项并指定归档文件的名称。-t 列出存档文件中的内容(list)

tar -t -f 归档文件.tar

我们现在就看看归档的内容,以最开始的 crack.tar 为例:

tar -t -f crack.tar

对于有使用压缩算法压缩的归档文件,也是一样的用法。

tar -t -f config4gta6.tar.gz

其他常用选项

除了上述基本用法,tar 命令还提供了许多其他选项,用于执行各种操作和控制归档文件的行为。以下是一些常用的选项:

  • -v:(verbose,详细的)显示详细输出,列出打包或提取的每个文件的名称。
  • -C:(Change directory)切换到指定目录后再执行操作,在 tar 命令中,一般就是解压的时候,配合这个 -C,可以让我们将文件解压到其他指定的目录中。
  • -u:(update)仅将较新的文件添加到存档文件中。

选项参数的先后顺序

tar 命令中,选项参数的先后顺序通常没有特定的规定。你可以根据需要灵活地组合和排列选项参数。

还有一些通用的惯例需要知道,这样可以帮助我们更好地使用选项参数:

  1. 通常情况下,选项参数以连字符 - 开头,例如 -c, -x, -v 等。
  2. 单个字母的选项参数可以组合在一起,形成一个选项字符串。例如,-cvf 表示同时启用 -c, -v, -f 这三个选项。
  3. 选项参数的顺序可能会影响命令的行为。例如,使用 -f 选项指定文件名时,应该确保 -f 出现在文件名之前,以便正确识别文件名。
  4. 一些选项参数可能需要后面紧跟着参数值。例如,-f 选项需要指定后面的文件名,例如 -f archive.tar.gz

总结

tar 最初是 tape archive(磁带归档)的简称,并且在早期主要用于磁带备份,但现在它已经成为一种常见的文件处理工具,可以创建、提取和管理归档文件,并结合压缩算法实现文件的压缩和解压缩功能。

现在,相信聪明的你已经学会了 tar 命令!

希望本文能够帮助大家更好地理解和应用 tar 命令。如果你对其他 Linux 命令也感兴趣,敬请期待我后续的文章。谢谢大家的阅读!

最后的最后

希望各位屏幕前的靓仔靓女们给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

咱们下期再见!

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

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

相关文章

C语言经典题目(三)

C站的小伙伴们,大家好呀!😊😊✨✨这一篇是C语言之经典题目篇,除程序设计,还有一些不错的程序分析,快来和我一起进入C语言的世界吧!✨✨✨ 💕C语言其他刷题篇在这里哦&…

【Python程序设计】——重点题目(期末不挂科)

课本: 目录 🕒 1. 控制结构🕒 2. 数据类型🕒 3. 函数🕒 4. 文件操作🕒 5. 面向对象🕒 6. Excel操作🕒 7. 实验课题目合集🕒 8. 思政题 🕒 1. 控制结构 【例…

chatgpt赋能python:Python怎么二次安装?

Python怎么二次安装? 介绍 Python作为一种广泛应用的编程语言,其安装也是极其简单。只需要在Python官网上下载对应版本的安装包,并按照提示进行安装即可。但是,如果你需要二次安装Python,比如更新到新的版本或者将Py…

百度、头条、360、搜狗下拉拓词及长尾关键词挖掘-批量多线程

百度、头条、360、搜狗下拉拓词及长尾关键词挖掘软件介绍: 1、在如今竞争激烈的互联网时代,作为SEO站长,我们都知道一个事实:流量就是金钱!而要想在海量信息中脱颖而出,我们需要借助一些强大的工具来帮助我…

OpenMMLab-AI实战营第二期——4-1.目标检测与MMDetection

文章目录 1. 目标检测的基本范式1.0-1 目标检测简介1.0-2 基本概念1.1 滑窗1.1.1 滑窗基本思想1.1.2 滑窗效率问题改进1.1.3 感受野计算 1.2-1 使用卷积实现密集预测1.2.1 在特征图上进行密集预测1.2.2 边界框回归1.2.3 非极大值抑制(Non-Maximum Suppression&#…

chatgpt赋能python:Python入门:如何下载和安装JupyterNotebook

Python入门:如何下载和安装Jupyter Notebook Jupyter Notebook是Python编程必备的工具之一,它可以帮助你快速地编写和测试Python代码。在这篇文章中,我们将向你展示如何下载和安装Jupyter Notebook。如果你是一名Python入门者,这…

神经网络:CNN中的filter,kernel_size,strides,padding对输出形状的影响

输入数据在经过卷积层后,形状一般会发生改变,而形状的变化往往与以下四个超参数有关。 1,filter(out_channel) 该超参数控制着输入数据经过卷积层中需要与几个卷积核进行运算,而输入数据与每个卷积核进行…

【P57】JMeter 保存响应到文件(Save Responses to a file)

文章目录 一、保存响应到文件(Save Responses to a file)参数说明二、准备工作三、测试计划设计 一、保存响应到文件(Save Responses to a file)参数说明 可以将结果树保存到文件 使用场景:当结果太大,使…

Mybatis插件001分页 pagehelper

Mybatis-PageHelper/Important.md at master pagehelper/Mybatis-PageHelper GitHubMybatis通用分页插件. Contribute to pagehelper/Mybatis-PageHelper development by creating an account on GitHub.https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis…

短视频社区的商业化和流量分发

商业化本质上是一门流量生意,那么为什么要做流量? 1、流量分配影响社区生态 一个社区的总流量是要在三类流量里面做分配,此消彼长: 私域流量公域流量(中心化运营 算法推荐)商业化的流量(也是…

chatgpt赋能python:Python代码的保存:保障开发效率和代码质量

Python 代码的保存:保障开发效率和代码质量 Python 是一种高级语言,被广泛应用于数据分析、机器学习、 Web 开发等各个领域。它的语法简洁、易于学习,拥有丰富的标准库和第三方库,帮助开发者快速实现功能。在这样一个代码生产效率…

[ruby on rails] passenger+nginx 部署rails

安装Passenger 方法1 Passenger 是一个 app server,支持基于 Rack 框架的 Ruby app(包括 Rails),作为模块变异到Nginx,不需要自己启动。 安装 Passenger 最简单的方法是通过 apt 安装,首先导入 Passenger…

英语4级技巧

真题链接:https://pan.baidu.com/s/1IZ0MmEpkANUm77ZLDmHs1A?pwd1111 提取码:1111 一、听力技巧 听到什么选什么 听发音 4级 90% 6级 60% 1、开头原则 2、顺序原则 1、单词发音/语音现象(连读、弱读、失去爆破) 反转词&#…

chatgpt赋能python:Python如何产生随机整数?

Python如何产生随机整数? Python是一种高级编程语言。它允许程序员轻松地创建各种类型的应用程序,包括生成随机整数。本文将介绍如何在Python中使用内置的随机数函数来生成随机整数。 random模块 Python中的random模块提供了生成随机数的函数。这些函…

chatgpt赋能python:Python实现二分查找

Python实现二分查找 在计算机科学中,二分查找是一种在有序数组中查找特定值的算法。 以一个有序数组为例,二分查找从数组的中间元素开始查找。如果需要查找的值与中间元素相同,则返回中间元素的位置。否则,如果查找的值比中间元…

ubuntu 20.04 aarch64 平台交叉编译 glib

glib 是什么? glib 是一个比较强大的 软件库,类似于 libc 库 交叉编译 当前需要移植到 aarch64(ARM64)平台上,需要使用 aarch64 交叉编译工具链编译 glib 环境准备 ubuntu 20.04 安装较新版本的 meson &#xff1…

使用大型语言模(LLM)构建系统(三):思维链推理

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。 下面是我们访问大型语言模(LLM)的主要代码: import openai#您的openai的api key openai.api_key YOUR-OPENAI-API-KEY def get_…

vue3中的插槽

目录 什么是插槽插槽的类型默认插槽具名插槽作用域插槽 插槽的默认内容动态组件中使用插槽插槽的组合使用插槽的高级用法插槽复用将动态组件作为插槽 插槽的优先级规则 什么是插槽 插槽是组件中用来承载内容的一种机制,可以让组件在运行时接受来自其它组件的任意内…

【后端面经-数据库】MySQL的存储引擎简介

【后端面经-数据库】MySQL的存储引擎简介 MySQL的存储引擎0. 存储引擎的查看和修改1. MyISAM2. InnoDB3. MEMORY4. MERGE5. 总结6. 参考博客 MySQL的存储引擎 mysql主要有四类存储引擎,目前主要使用InnoDB作为存储引擎。 0. 存储引擎的查看和修改 查看当前数据库…

Oracle子查询改写的几种方式

子查询定义 子查询是嵌套在另一个语句(如SELECT,INSERT,UPDATE或DELETE)中的SELECT语句。 通常,可以在任何使用表达式的地方使用子查询。 例子 比如从以下的病人信息中查询最近一个月住院年龄最大的病人信息 从以上的信息中我们知道病人出生日期BIRTHDATE ,限制取数的时…