Linux用户来讲,把文件进行打包以及解压这属于日常会做的操作。tar命令是做这项工作时的核心所使用的工具,它会把多个文件或者目录合并成一个归档文件,这样做方便进行备份,或者用于传输,又或者是进行压缩用。要是理解tar的基本逻辑以及常用的选项,那么会极大地提升在命令行环境下的工作效能。

为什么linux打包要用tar命令

tar呢,其设计的最初用意是把多种多样的多个文件给“打包”,从而形成一个单独的归档文件,它一开始是被运用在磁带备份方面的。它最为关键的优势在于能够留存文件所具有的属性,像权限啦、所有者啦、时间戳之类的,而这些对于系统备份还有软件分发来讲是相当重要的。在Linux环境当中,源码发布以及日志归档都离不开它,这是别的简单压缩命令很难起到替代作用的。

linux打包命令tar_linux打包命令tar_前端打包命令

还要强调的是,tar自身不具备压缩的功能,仅仅只是进行打包操作。这样的一种设计把打包以及压缩这两个步骤分离开来,给予了更为强大的灵活性。你能够先去创建.tar归档文件 ,紧接着依据自身需要运用不同的工具来进行压缩 ,或者也能够直接借助tar的快捷选项一次性完成操作。这种模块化的思想是Linux哲学的一个典型的体现 。

tar命令的基本语法结构

极为基础的tar命令格式为tar [选项] 归档文件名 要打包的文件或目录,你得铭记三个关键操作选项,-c意味着创建归档、-x意味着解压归档、-t意味着列出归档内容,不管命令何等繁杂难缠,皆缘这三大操作予以铺展。

linux打包命令tar_前端打包命令_linux打包命令tar

比如说,在tar -cvf backup.tar /home/user/docs这个命令里头,-c所代表的意思是创建,-v展现出详细的过程,-f是用来指定归档文件名的。-f选项的后面是一定要紧接着你所期望得到的文件名的,这是最容易出现错误的地方所在了。将操作选项跟-f选项放置在一起,一般来讲是一种良好的习惯。

如何用tar命令打包目录

将目录进行打包这一情形属于最常被tar运用的场景范畴之一linux打包命令tar,假定你打算对整套project目录予以备份,其命令并不繁杂,即为tar -cvf project_backup.tar ./project,在此处所说的./project属于相对路径,你同样能够采用绝对路径,运用-v这一选项,屏幕之上将会滚动着显现出全部被打包纳入其中的文件名称,从而让你心里存有底。

linux打包命令tar_linux打包命令tar_前端打包命令

进行打包操作之际,你大概有可能会萌生出想着去排除掉某些特定的子目录或者临时存在的文件这样的想法。在这个时候则能够将其与那个 --exclude选项恰当地结合起来运用。举例来说,就像tar - cvf project _backup.tar --exclude='*.log' --exclude='./project/tmp' ./project这样,这一条命令便能够达成当执行打包动作的时候去略过所有的日志类型文件以及tmp这个子目录的目的。合乎情理地去运用这种排除的功能,是能够使得归档之后的文件从而变得更为精简的 。

tar打包时如何压缩文件

通过附加的压缩选项,tar命令能达成打包并压缩的操作。最为常用的三个压缩选项分别是:-z,它对应着gzip压缩,会生成.tar.gz或者.tgz-j,此为对应bzip2压缩,生成.tar.bz2-Jlinux论坛,对应xz压缩,生成.tar.xz。它们给出了不同的压缩率以及速度平衡。

在进行具体操作之际,仅仅只需于创建命令当中添加那对应的选项便可。举例来说,倘若要进行打包并且gzip压缩,那么命令便是:tar -czvf archive.tar.gz ./project。在解压之时,所使用的命令同样是需要附带那对应的压缩选项的,就像tar -xzvf archive.tar.gz 一样。要牢记,解压所运用的选项必须得和压缩的时候保持一致才行,不然的话就会出现报错状况。针对.tar.gz 文件而言,使用的是-z;而对于.tar.xz 文件来讲,则是使用-J

linux打包命令tar_前端打包命令_linux打包命令tar

如何解压tar文件到指定目录

解压之际,在默认情形下,tar会把文件给释放至当前之目录。然而,更为常见的那种需求却是指定目标路径,而这就需要运用到-C(此乃大写的C)这个选项喽。比如说,tar -xzvf archive.tar.gz -C /opt/backups,此命令会将归档的内容解压到/opt/backups这个目录下面。那个-C选项极度显著地增添了操作的灵活性。

偶尔你光是想要解压那归档里头特定的文件出来去。你能够先运用那个-t选项将内容陈列出来,在确认好文件名之后,于解压命令的末尾把它给添加上去。就好比tar -xzvf archive.tar.gz path/to/specific_file.txt这样的。留意一下,这里所指定的那个路径必定得是那个归档之内列表所展示出来的完整的相对路径才行。

tar命令有哪些实用高级技巧

linux打包命令tar_linux打包命令tar_前端打包命令

有一种颇为实用的技巧,那便是去创建增量备份。借助--listed-incremental这一选项linux系统界面,tar能够依据一个快照文件,仅仅备份从上次往后更改过的那些文件。这对于定期去备份大容量数据而言是极为高效的。虽说命令稍微显得复杂了些,不过却能够节省下大量的时间以及存储空间。

在进行远程操作时又有一个技巧,那就是借助管道来达成,就像你能够于本地进行打包,随后通过ssh直接传输至远程服务器,其操作指令为:tar -czf - ./project | ssh user@remote "cd /backup && tar -xzf -",在这些命令里,-所代表的是标准输出或者输入,而这样的组合技巧避免了在本地去生成中间文件,从而实现了一气呵成的操作效果 。

当你运用tar指令之际,可曾碰到过因忘掉某一关键选项致使操作失败的尴尬瞬间呢?最使你头疼的是哪一个环节呀?欢迎于评论区中分享你的过往经历和心得体会,要是觉着这些技巧颇具效用linux打包命令tar,也请予以点赞并且分享给更多有需求的友人。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复