标签:试用版 性能 建议 它的 电子 输入输出 tarball href option
可先浏览加粗部分
*.zip | zip 程序压缩打包的档案; (很常见,但是因为不包含文档名编码信息,跨平台可能会乱码)
*.rar | winrar 进程压缩打包的档案;(在windows上很常见,但是是商业软件。)
*.gz | gzip 程序压缩的档案; (linux目前使用最广泛的压缩格式)
*.bz2 | bzip2 程序压缩的档案;
*.xz | xz 程序压缩的档案;
*.tar | tar 程序打包的资料,并没有压缩过;
*.tar.gz | tar 程序打包的档案,其中并且经过 gzip 的压缩 (最常见)
*.tar.bz2 | tar 程序打包的档案,其中并且经过 bzip2 的压缩
*.tar.xz | tar 程序打包的档案,其中并且经过 xz 的压缩 (新一代压缩选择)
*.7z | 7zip 程序压缩打包的档案。
gzip bzip2 xz 这三个压缩格式都只能压缩单个文档。(换而言之,该进程的输入输出都是流,不包含文档树信息。)
因此如果要用它们压缩多个文档或目录,需要使用另一个软件来先将要压缩的文档打包成一个文档(包含文档树信息),这个命令就是 tar.
先使用 tar 归档要压缩的多文档,再对生成的 *.tar 使用 上述压缩指令(或者直接使用管道重定向),linux 下是这样实现多文档压缩的。
而 7z 和 zip,以及 rar 格式,都同时具有了 归档(tar) 和 压缩 两个功能,(也就是该格式包含了文档树信息咯)也就是说它们可以直接压缩多个文档。
不过 zip 被广泛应用在 安卓的 apk 格式、java 的 jar、电子书 的 epub,还有github、云硬盘的多文档下载 中,原因嘛大概是zip很流行,所以不用担心目标平台没解压软件吧。
总的来说,就是 windows 上推荐使用 7z,而 linux 上 推荐使用 tar.gz tar.xz 7z 之一。此外 rar 的损坏很容易修复,zip 受众多(要注意乱码问题),也可以考虑。
通过之前的介绍,可以看出常用的就是 tar gzip xz 等,如果要压缩多个文档,需要先使用tar,再用管道重定向到 gzip 或 xz,比较麻烦,而这几个指令又很常用。于是后来对tar做了增强。
tar 最初只是一个归档进程,而压缩则由其他的压缩软件来完成(一个进程只干一件事)。后来为了方便,丧心病狂地集成了各种压缩指令。因此这里就只介绍这一个命令了(它囊括了所有)。
tar 的选项与参数非常的多!我们只讲几个常用的选项,更多选项您可以自行 man tar 查询啰!
[dmtsai@study ~]$ tar [-z|-j|-J] [cv] [-f 待创建的新档名] filename... <==打包与压缩
[dmtsai@study ~]$ tar [-z|-j|-J] [tv] [-f 既有的 tar档名] <==察看档名
[dmtsai@study ~]$ tar [-z|-j|-J] [xv] [-f 既有的 tar档名] [-C 目录] <==解压缩
-c :创建打包档案,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 .tar.gz
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 .tar.bz2
-J :透过 xz 的支持进行压缩/解压缩:此时档名最好为 *.tar.xz
特别留意, -z, -j, -J 不可以同时出现在一串指令列中
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项啰!(比较不会忘记)
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
其他后续练习会使用到的选项介绍:
-p(小写) :保留备份资料的原本权限与属性,常用于备份(-c)重要的设定档
-P(大写) :保留绝对路径,亦即允许备份资料中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
压 缩:tar -zcv -f filename.tar.gz 要被压缩的档案或目录名称
查看文档树:tar -ztv -f filename.tar.gz
解压缩:tar -zxv -f filename.tar.gz -C 欲解压缩的目录
上面的命令需要根据压缩格式的不同,选用 -z
-j
-J
选项,而实际上文档的后缀就已经表明了它的压缩格式,不免让人觉得多余。
因此就有这幺一条通用的压缩/解压 option
-a, --auto-compress
Use archive suffix to determine the compression program.
使用这个,便有了通用的解压指令:
tar -axv -f file.tar.* (它适用于上述三种压缩格式)
使用 --exclude=FILE 选项(支持文档名的模式匹配,而且可重复)
tar -zcv -f filename.tar.gz directory --exclude=FILE1 --exclude=func*
使用 --newer-mtime="2015/06/17" 选项。
tarfile 纯打包、未压缩的 tar 文档
tarball 压缩了的 tar 文档
p7zip安装好后,会提供7z、7za、7zr三个指令,一般来说直接用7z就行。
P.S. 7z不会保存 linux 文档的用户、用户组信息,因此不能直接用于linux系统备份,此时建议用tar.xz或tar.7z(也就是先用tar打包)
rar是非开源的格式,linux 默认是不会包含 rar 压缩软件的,但是它的解压软件是开源的,deepin 自带 unrar,顺便7zip也可解压 rar 文档。
若想用linux创建rar压缩档,需要从rarlab上下载linux版,(deepin源自带)不过要注意的是该linux版是40天试用版,要长期使用的话,可能需要破解。(rar的key网上一搜一大把)
其实我挺中意rar的修复功能的,不知道为啥 7z xz 这样的新格式没有添加类似的 recorvery records。上次下个 Idea 的 tarball,下了四五次才下到一个完整的,要是用 rar 的话,大概一键修复就好了,可 tar.gz 我不知道怎幺修复,只好一遍遍重复下载。。
本文允许转载,转载请注明出处:常见压缩格式比对,及 Linux 下的压缩相关指令
标签:试用版 性能 建议 它的 电子 输入输出 tarball href option
原文地址:https://www.cnblogs.com/kirito-c/p/8970652.html