- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
大家好,我是 god23bin。今天给大家带来的是 Linux 命令系列, 每天只需一分钟,记住一个 Linux 命令不成问题 。今天,我们要介绍的是一个常用且强大的命令:tar.
tar 是 tape archive 的缩写,意思是磁带归档,归档可以视为存档。 tar 命令网上很多都提到,它是一个压缩命令,为什么会这样说呢?
实际上,它是用于创建和提取 tar 归档文件的,最初的设计就是用于将多个文件打包到磁带上进行备份。随着时间的推移, tar 命令已经扩展到处理文件和目录的归档和压缩.
tar 命令之所以常被称为压缩命令,是因为它通常与压缩算法结合使用,可以在创建归档时对文件进行压缩,以减小归档文件的大小。这种结合使用压缩算法的方式是出于效率和存储空间的考虑,尤其在处理大量文件或传输文件时特别有用。压缩算法通常是通过选项来指定的。在常见的 tar 命令中,使用 -z 选项表示使用 gzip 压缩算法, -j 选项表示使用 bzip2 压缩算法,而 -Z 选项表示使用 compress 压缩算法。这些压缩算法可以有效地减小文件的大小,并在需要时进行解压缩还原。所以,现在的 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的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我有一系列 SQL 命令,我想在大约 40 个不同的表上运行。必须有一种方法可以在不编写 40 条不同命令的情况下执行此操作... 我在 SQL Server 中运行它。所有表都有不同的名称,我要操作
我习惯在 PHP 中使用命令“mysql_insert_id()”来返回插入到我的数据库中的最后一行的 id。 在 C# 中的 SQLite 中是否有等效的命令? 谢谢! -阿德娜 最佳答案 选择 l
试图找出一种方法来回填 ds 分区 Hive 表的分区。 我知道如何从 CLI 运行 Hive 命令,例如 $HIVE_HOME/bin/hive -e 'select a.col from tab1
我有 .bat 文件。看起来像下一个 ....many commands1 ftp -i -s:copy.txt ...many commands2 copy.txt 包含下一个命令 open ...
基本上我想输入 show 并检查是否有 show 命令或别名已定义并触发它,如果未定义则触发 git show 。 例如 rm 应该执行 rm 但 checkout 应该执行 git checkout
我公司的主数据库是 iSeries 机器,我已经非常习惯使用 DB2 命令和结构。我现在正在尝试做一个小项目,更新一个包含超过 300 万条记录的表。我想出一种比较和“清理”数据的更快方法是使用 My
我想在带有 Node 的终端中制作一个简单的按钮板,并“blessed”用于连接或运行不同的命令。 ----------------------------------------------- _
我们有一个 selenium IDE 脚本,正在转换为 python webdriver。以下命令未转换: [openWindow | http://mywebsite.com/index.php |
我正在学习这个关于从 GIT HUB 下载和安装 Web 文件的在线教程。我进入主题:启动我们的静态网站,系统提示我输入命令以下载和安装 Web 文件。但是,当我输入命令 yarn install 时
我在 shell 脚本中使用 elif 命令时遇到问题,就像在 fortran 中一样。 我有 100 家公司的员工名单。我想屏蔽那些员工少于 500 人的公司。我的脚本是 rm -f categor
我有一些 Linux 命令可以生成 token 。我在 Linux 机器上使用操作系统库形式的 Python 自动化了这些命令。它工作正常。 但是,当我在 Windows 中尝试相同的代码时,它没有返
本文分享自华为云社区《Git你有可能不知道交互式暂存》,作者:龙哥手记。 本节中的几个交互式 Git 命令可以帮助你将文件的特定部分组合成提交。 当你在修改了大量文件后,希望这些改动能拆分为若干提交而
我想知道如何使用 IN 比较语法来做到这一点。 当前的 SQL 查询是: select * from employee where (employeeName = 'AJAY' and month(e
我在这个位置安装了 Hadoop /usr/local/hadoop$ 现在我想列出 dfs 中的文件。我使用的命令是: hduser@ubuntu:/usr/local/hadoop$ bin/ha
是否有一个单一的 docker 命令可用于清除所有内容?如果正在运行,请停止所有容器、删除所有图像、删除所有卷...等。 最佳答案 我认为没有一个命令可以做到这一点。您首先需要停止所有容器使用 $ d
我基本上是在 clojure/nrepl 模式中寻找与 C-u C-x C-e 或 C-c C-p 等效的 Scheme。 我想要一个 C-x C-e 将输出打印到缓冲区,而不是仅仅在 repl 中。
我可以在 vim 中使用 pudb(一个 ncurses Python 调试器),因为,例如,:!python %在实际的终端窗口中运行。我更喜欢使用 gvim,但 gvim 运行 :!python
我正在尝试编写一个 FFMPEG 命令: 取为 输入 一个视频 input.mp4 和一个图像 pic.jpg 作为 输出 将 input.mp4 拆分为 20 秒的视频,按顺序重命名;对于每个分割视
我想转储视频每帧的比特率。我正在尝试使用 -vstats 获取此信息命令。当我运行此命令时 - ffmpeg -i input.mp4 -vstats 它显示至少应该定义一个文件。 如果有人能建议我任
我是一名优秀的程序员,十分优秀!