很多人都把tar
命令当作是Linux下的压缩工具了,其实严格意义上来说tar
命令是个打包命令,本身不具有压缩功能,都是调用压缩工具实现打包后压缩以及解压缩的。这点儿从tar
命令的英文全拼:tape archive(意思是磁带存档)就可以说明的,在明月早期的文章【通过老古董理解 Unix/Linux 里那些晦涩难懂的指令】可以更好的理解这个概念的。
<img src="https://zhen.bushini.de/wp-content/uploads/2023/02/1753123958.png" alt="tar
命令就是用来打包归档的" title="tar
命令就是用来打包归档的">
因为最近明月迷恋上了Zstd
压缩算法,还把Zstd
压缩类型借助tar
命令在LNMP环境下的backup.sh
脚本运用在网站自动备份上了,而tar
命令只有在1.30版以上才支持Zstd
压缩算法,大部分的Linux里默认的tar
命令版本都比较低,所以就得自行编译更新tar
命令到最新版来支持Zstd
压缩算法。
依旧算是明月自己的运维学习笔记了,记录下来并分享出来,以后运维工作中也能随时参考,毕竟年纪大了,很多命令细节都记不住了,“好记性不如烂笔头”嘛!
<img src="https://zhen.bushini.de/wp-content/uploads/2023/02/3116635524.png" alt="tar
命令的压缩都是借助压缩工具实现的" title="tar
命令的压缩都是借助压缩工具实现的">
首先,我们可以在tar
命令官网获得最新版本的源码压缩包,考虑到更新到最新版这个刚需,懒得去根据版本号查找了,直接下载latest版最简单高效了。
tar
命令官网:https://ftp.gnu.org/gnu/tar/
下载tar
命令的latest版源码压缩包:
wget https://ftp.gnu.org/gnu/tar/tar-latest.tar.gz
解压缩源码压缩包:
tar xvzf tar-latest.tar.gz
进入源码压缩包目录(因为下载的latest版本是1.3.4,所以进入对应的目录):
cd tar-1.3.4
编译源代码:
FORCE_UNSAFE_CONFIGURE=1
export FORCE_UNSAFE_CONFIGURE
./configure && make
备份旧版:
mv /bin/tar /bin/tar.old
复制新版到目录:
cp src/tar /bin/tar
验证tar
版本号:
tar --version
tar (GNU tar) 1.34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
确认已经更新到最新版果断删除备份:
rm /bin/tar.old
至此完成更新tar
命令到最新版本,现在的tar
命令已经支持Zstd压缩算法了,随后明月会分享网站备份使用Zstd压缩算法的具体代码和体验的,敬请关注了!