大家好,今天给各位分享彻底理解Linux归档压缩神器~tar的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
(1) 使用tar创建归档文件:
$ tar -cf 输出.tar [来源]
选项-c表示创建一个新的归档文件。选项-f 代表归档文件名,后面必须跟一个文件名:
$ tar -cf archive.tar 文件1 文件2 文件3 文件夹1 .
(2) 选项-t可以列出压缩包中包含的文件:
$ tar -tf 存档.tar
文件1
文件2
(3)选项-v或-vv参数可以在命令输出中添加更详细的信息。
此功能称为“详细模式(v,verbose)”或“非常详细模式(vv,非常详细)”。 -v 是在终端中生成报告的命令的常规选项。该选项可以显示更多详细信息,例如文件权限、所有者所属组、文件修改日期等信息:
$ tar -tvf 存档.tar
-rw-rw-r– shaan/shaan 02013-04-08 21:34 file1
-rw-rw-r– shaan/shaan 02013-04-08 21:34 file2
文件名必须紧接在-f 之后出现,并且-f 应该是列表中的最后一个选项。如果你想使用详细模式,你可以这样写:
$ tar -cvf 输出.tar 文件1 文件2 文件3 文件夹1
正则表达式在tar中的应用
tar 命令可以接受一组文件名或通配符(例如*.txt)来指定需要归档的源文件。该命令执行后,所有源文件都会包含在指定的归档文件中。
命令行参数的数量是有限制的,我们不能一次传递数百个文件或目录。如果您有很多文件要存档,那么使用追加选项会更安全。
tar追加部分文件到压缩档
选项-r 可以将新文件追加到现有存档文件的末尾
tar -rvf 原始文件.tar 新文件
如何列举压缩档中的文件
当压缩文件非常大并且您只想提取几个文件时,此功能非常有用。
-t 选项列出存档的内容。选项-f可以指定归档文件名
tar -tf 存档.tar
你好.txt
从归档文件中提取文件或目录
选项-x 可以将存档文件的内容提取到当前目录。当使用-x 时,tar 命令会将归档文件的内容提取到当前目录。我们还可以使用选项-C 来指定文件应解压到的目录。
这也非常有用,因为您不再需要来回复制文件。
$ tar -xf archive.tar -C /path/to/extraction_directory
在tar中使用stdin和stdout
将stdout 指定为输出文件,以便另一个命令可以通过管道将其读取(作为stdin)并执行其他处理。
通过Secure Shell (SSH) 传输数据时
tar cvf – 文件/| ssh user@example.com ‘tar xv -C 文档/’
files 目录的内容被归档并输出到stdout(由- 指定),然后提取到远程系统上的Documents 目录中。
这种压缩和解压缩操作在内存中快速执行,不需要中间存储。缺点是透明,无法知道内部进度。
拼接两个归档文件
假设我们现在有两个tar 文件:file1.tar 和file2.tar。以下命令可以将file2.tar的内容合并到file1.tar中
tar -Af 文件1.tar 文件2.tar
通过检查时间戳来更新归档文件中的内容
追加选项(-r) 可以将任何指定的文件添加到存档文件中。如果已存在同名文件,则存档将包含两个同名文件。我们可以使用更新选项-u来指定:只添加比压缩包中同名文件更新(更新)的文件。
这个操作也很实用。如果需要更新一两个压缩文件,则无需花费时间压缩整个文档。
tar -uf archive.tar 文件a
您可以使用-t 验证时间戳是否已更改,或-xf 提取新文件并检查内容以确认。
比较归档文件与文件系统中的内容
-d 选项将存档中的文件与文件系统中的文件进行比较。该函数可用于确定是否需要创建新的存档。
从归档中删除文件
tar -f archive.tar –删除file1 file2
压缩tar归档文件
一个容易混淆的概念,tar 只归档而不压缩。 -a 或–auto-compress 选项完成压缩
tar命令默认只归档文件,不压缩文件。但是,tar 支持相关的压缩选项。压缩可以显着减小文件大小。存档文件通常被压缩为以下格式之一。
gzip 格式:file.tar.gz 或file.tgz。
bzip2 格式:文件.tar.bz2。
Lempel-Ziv-Markov 格式:file.tar.lzma。
不同的tar 选项可用于指定不同的压缩格式:
-j 指定bunzip2格式;
-z 指定gzip格式;
–lzma 指定lzma 格式。
无需明确指定上述特定选项即可使用压缩。
tar的智能压缩算法
tar 可以根据输出或输入文件的扩展名进行压缩。为了让tar支持基于扩展名的自动选择压缩算法。
在归档过程中排除部分文件
选项–exclude [PATTERN] 可以从归档过程中排除与通配符模式匹配的文件。
请注意,应使用双引号将模式引起来,以防止shell 扩展它。
如果需要排除的文件较多,也可以将需要排除的文件列表放到一个文件中,并使用选项-X:
$ 猫列表
菲莱拉
文件b
$ tar -cf arch.tar * -X 列表
排除版本控制目录
tar 文件的用途之一是分发源代码。许多源代码都是使用版本控制系统维护的,例如subversion、Git、mercurial 和CVS。版本控制系统中的代码目录通常包含一些特殊目录,例如.svn或.git。这些目录由版本控制系统管理,对开发人员以外的用户用处不大。无需将其包含在分发给用户的tar 文件中。
tar选项–exclude-vcs可以在归档时排除版本控制相关的文件和目录
打印总字节数
选项-totals 可以打印出存档中的总字节数。请注意,这是数据的实际字节数。如果使用压缩选项,文件大小将小于归档总字节数:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/200470.html
用户评论
一生只盼一人
终于有一个简单易懂的教程讲解tar命令了!我之前一直以为这东西太复杂,实际操作起来却很容易!作者说得都很有道理,受益良多!
有9位网友表示赞同!
颓废人士
说的没错,tar真是个强大的工具!之前总是用zip和7z,但遇到很多文件,这些软件就有点力不从心了。之后我试了一下tar,确实效率很高,而且可以自定义压缩档案的等级,这对于储存空间很重要。
有20位网友表示赞同!
短发
这篇文章讲得真好!尤其是关于“-c”, “-x”, “-t”, “-v”等选项的使用,非常清晰详细,完全搞懂了这些基础指令的功能和用法!
有19位网友表示赞同!
羁绊你
虽然tar本身很简单,但配合其他工具使用就更强大。作者也提到了这方面的内容,比如如何用gzip和xz文件压缩tar档案?真的太棒了!我已经迫不及待去实践它了
有18位网友表示赞同!
情深至命
讲到归档压缩,还得提到bzip2的优缺点啊! tar压缩本身速度快,而且兼容性强,但我感觉bzip2能提供更强的压缩比!
有16位网友表示赞同!
身影
之前一直没尝试过tar,因为以为太复杂了。看了这篇文章才发现它其实很直观易懂!以后我会把它作为我的常用工具吧!
有15位网友表示赞同!
命该如此
我用的Linux系统版本比较高,有些功能和指令可能不太一样吧。作者的例子或许可以参考,但还是得根据自己的环境进行实践操作。
有18位网友表示赞同!
冷青裳
这篇文章没有提到如何使用tar去处理文件夹中的特殊文件或符号链接吗?这部分内容也很重要啊!
有16位网友表示赞同!
青衫故人
tar真是一把利器!以前总是麻烦地一个一个的压缩文件,现在只需要一行命令就能搞定,省去了很多时间和精力。我强烈推荐给所有Linux用户使用tar!
有19位网友表示赞同!
嗯咯
虽然tar真的很方便,但是有时候那些大型档案解压起来也很费时啊。有没有什么技巧可以加快解压速度呢?
有20位网友表示赞同!
等量代换
这篇文章写得真好,终于有人来讲解tar命令了!之前我一直用zip和7z,但tar确实更强大,而且更适合处理大量文件。这个教程帮助我入门了!
有10位网友表示赞同!
熟悉看不清
这篇博客介绍的不错,但是缺少一些实际案例和应用场景的讲解。比如可以使用tar压缩哪些类型的档案?有哪些行业的应用场景?
有14位网友表示赞同!
我就是这样一个人
文章没有提到tar的一些安全问题,比如如何防止被恶意压缩文件攻击? 这部分内容也值得关注!
有7位网友表示赞同!
有恃无恐
我很想学习用tar来打包安装软件, 但是这篇文章只介绍了基本的用法。有没有后续的文章讲解如何使用tar在软件开发中应用呢?
有19位网友表示赞同!
挽手余生ら
tar命令其实蛮灵活的,可以结合其他工具进行更复杂的处理,比如使用shell脚本自动化任务等等。希望作者能提供更多高级操作的小技巧!
有18位网友表示赞同!
迁心
看了这篇文章之后,我感觉tar真的太简单了,简直就是Linux用户必备技能!而且它还能配合其他命令,实现很多功能。 值得学习!
有10位网友表示赞同!
?亡梦爱人
其实我觉得tar的使用场景还是有限的,对于一些图片、视频等大文件压缩来说, 7z或者rar可能会更合适。
有15位网友表示赞同!