日新计划6月更文 Day 5
这篇文章我们讲一些较常用的小细节(≧^.^≦)喵~
在 Linux 上,我们经常看到形如“foo.tar.gz”、“bar.tar.xz”等压缩包,搜索解压方法得到了一长串奇怪的参数,比如“tar -zxvf foo.tar.gz”、“tar -xJvf bar.tar.xz ”等,越看越懵,让人苦不堪言……
- 其实从很久以前 tar 就支持使用
tar -xvf 文件来解压压缩文件惹
首先我们来认识一下“tar”归档包:tar 文件包含了一个或多个普通文件或目录的全部内容及元数据、权限信息等附加数据,这一点在 *nix 领域非常重要,因为其他压缩格式(如 zip )不支持保存权限信息等。
但是,受“一个工具应该只做并做好一件事”思想的影响,tar 归档不支持对数据进行无损压缩,通常人们的做法是使用gzip(.gz)、xz(.xz)、bzip2(.bz2)、zstd(.zst)等压缩技术对 tar 归档包进行压缩,于是有了上述那些五花八门的复扩展名。
因此,解压上述压缩包的正确姿势是先解压该文件得到 tar 归档,再展开这个归档。现在的 tar 支持根据文件类型自动调用适当的解压工具进行解压(tar -xf foo)以及在压缩时根据给出的扩展名进行压缩(tar -cf bar FILES)。
下面解释一下 tar 的那些参数:上述参数都是短格式参数(可分拆为多组一个减号“-”与一个或多个字母相连的格式,如-xJvf<==>-x -J -v -f<==> -xJ -vf),这些参数理应可以任意排序,但-f参数后必须加处理的文件,因此其一般在最后。-x/-c表示解压/创建压缩包;-j/-z/-J是压缩格式;-v表示显示整个过程。
- 创建压缩包不要忘记
-a,否则 tar 只进行归档而不进行压缩- 对于较老版本的 tar,某些新压缩格式是不支持的,可使用
file命令查看得到的文件是否被压缩