一分钟学一个 Linux 命令 - tar
前言
大家好,我是 god23bin。今天给大家带来的是 Linux 命令系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天,我们要介绍的是一个常用且强大的命令:tar。
什么是 tar 命令?
tar
是 tape 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
命令中,选项参数的先后顺序通常没有特定的规定。你可以根据需要灵活地组合和排列选项参数。
还有一些通用的惯例需要知道,这样可以帮助我们更好地使用选项参数:
- 通常情况下,选项参数以连字符
-
开头,例如-c
,-x
,-v
等。 - 单个字母的选项参数可以组合在一起,形成一个选项字符串。例如,
-cvf
表示同时启用-c
,-v
,-f
这三个选项。 - 选项参数的顺序可能会影响命令的行为。例如,使用
-f
选项指定文件名时,应该确保-f
出现在文件名之前,以便正确识别文件名。 - 一些选项参数可能需要后面紧跟着参数值。例如,
-f
选项需要指定后面的文件名,例如-f archive.tar.gz
。
总结
tar
最初是 tape archive(磁带归档)的简称,并且在早期主要用于磁带备份,但现在它已经成为一种常见的文件处理工具,可以创建、提取和管理归档文件,并结合压缩算法实现文件的压缩和解压缩功能。
现在,相信聪明的你已经学会了 tar
命令!
希望本文能够帮助大家更好地理解和应用 tar
命令。如果你对其他 Linux 命令也感兴趣,敬请期待我后续的文章。谢谢大家的阅读!
最后的最后
希望各位屏幕前的靓仔靓女们
给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!
咱们下期再见!
一分钟学一个 Linux 命令 - tar的更多相关文章
- 每天一个linux命令---tar
解包/打包语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项: c 创建新的档案文件.如果用户想备份一个 ...
- 一天学一个Linux命令:第一天 ls
文章更新于:2020-03-02 注:本文参照 man ls 手册,并给出使用样例. 文章目录 一.命令之`ls` 1.名字及介绍 2.语法格式 3.输出内容示例 4.参数 二.命令实践 1.`ls ...
- 一天学一个Linux命令:第二天 cd pwd
文章更新于:2020-03-08 注:本文参照 man pwd 手册,并给出使用样例. 文章目录 一.命令之 `cd` 和 `pwd` 1.命令介绍 2.语法格式 3.使用样例 4.pwd 参数 5. ...
- 每天一个linux命令目录
出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...
- 每天一个linux命令-转载
每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令 ...
- [转]每天一个linux命令目录
[转]每天一个linux命令目录 http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每 ...
- 每天一个linux命令【转】
转自:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...
- 每天一个linux命令(目录)
转:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天 ...
- 【转】每天一个linux命令目录
原文网址:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列 ...
- 64个命令,每天一个linux命令目录, shutdown,tee,rcp,
每天一个linux命令目录 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令.学习的主要参考资料为: 1.<鸟哥的linux私房菜> 2.htt ...
随机推荐
- pack.json中的^ ~的区别
在版本说明前面还有个符号:'^'(插入符号)和'~'(波浪符号),他们之间的区别:例如: '~'(波浪符号):他会更新到当前minor version(也就是中间的那位数字)中最新的版本.放到我们的例 ...
- ACM-NEFU15届校赛-大一组
A. 三角形面积 #include <bits/stdc++.h> using namespace std; int main() { double a,b,c; double ans,p ...
- Python 人工智能 5秒钟偷走你的声音
介绍 Python 深度学习AI - 声音克隆.声音模仿,是一个三阶段的深度学习框架,允许从几秒钟的音频中创建语音的数字表示,并用它来调节文本到语音模型,该模型经过培训,可以概括到新的声音. 环境准备 ...
- 如何在Java中做基准测试?JMH使用初体验
大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活.快来加入我们的Java提桶跑路群:共同富裕的Java人. 最近公司在搞新项目,由于是实验性质,且不会直接面对客户的项目,这次的技术选型非常激进,如 ...
- Schillace法则:使用LLM创建软件的最佳实践
LLM(大语言模型)的发展正在改变软件开发的方式. 以前,开发人员需要编写大量的代码来实现其意图,但现在,随着语言模型的发展,开发人员可以使用自然语言来表达他们的意图,而无需编写大量的代码.这使得软件 ...
- 四月八号java基础
1.复合语句:JAVA语言不允许在两个嵌套的复合语句内声明同样的变量 2.注释:1)单行注释// 2)多行注释/*......*/3)/**......*/文件注释 3.else总是与之最近的if结构 ...
- SQL优化(二)-- 慢查询
1.慢查询日志 MYSQL的慢查询日志是Mysql提供的一种日志记录方式,它主要是用来记录mysql执行语句过程中,响应时间超过阀值的语句,这个阀值可以通过long_query_time去指定,比如说 ...
- MySQL(八)哈希索引、AVL树、B树与B+树的比较
Hash索引 简介 这部分略了 Hash索引效率高,为什么还要设计索引结构为树形结构? Hash索引仅能满足 =.<>和IN查询,如果进行范围查询,哈希的索引会退化成O(n):而树型的 ...
- dotnet初探:用miniapi创建一个自己的url
致谢 首先写在前面,非常感谢微软mvp桂素伟先生的技术分享,因为微软的文档大部分都如机器翻译般的生硬,让人难以读下去,正是他的无私分享为我的.net学习旅程提供了方向,非常感谢.如果大家对他比较感兴趣 ...
- 23.oneOf
const { resolve } = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') // 提取cs ...