归档工具笔记
简述
归档文件是由一个或多个计算机文件以及元数据组成的压缩文件。
归档的特点
- 数据压缩
- 加密
- 文件连接
- 自动提取
- 自动安装
- 源卷和媒体信息
- 文件跨越
- 校验和
- 目录结构信息
- 其他元数据(关于数据的数据)
- 错误发现
应用领域
- 将计算机文件系统与元数据一起存储。
- 在本地传输文件有用。
- 用于通过网络传输文件。
- 软件包装应用。
目的是使用时间换取空间。
目前来说,有很多种归档工具,下面只介绍我所见过的归档工具。
仅是略写,更多详细的使用方式请使用相应工具的帮助功能 (
-h / -? / --help
)
ar
简述
ar
在 Linux 命令行中可以直接调用此工具。
可以使用 binwalk
软件提取。
特征
文件开头含有 !<arch>
或者
!<thin>
(这是一种简化的压缩)。
命令
命令 | 作用 |
---|---|
d |
从归档文件中删除文件 |
m[ab] |
在归档文件中移动文件 |
p |
打印在归档文件中找到的文件 |
q[f] |
将文件快速追加到归档文件中 |
r[ab][f][u] |
替换归档文件中已有的文件或加入新文件 |
s |
act as ranlib |
t |
显示归档文件的内容 |
x[o] |
从归档文件中提取文件 (解压) |
特定命令修饰符
命令修饰符 | 作用 |
---|---|
[a] |
将文件置于 [成员名] 之后 |
[b] |
将文件置于 [成员名] 之前 (于 [i] 相同) |
[D] |
use zero for timestamps and uids/gids |
[U] |
use actual timestamps and uids/gids (default) |
[N] |
use instance [count] of name |
[f] |
truncate inserted file names |
[P] |
在匹配时使用完整的路径名 |
[o] |
保留原来的日期 |
[u] |
只替换比当前归档内容更新的文件 |
通用修饰符
通用修饰符 | 作用 |
---|---|
[c] |
不在必须创建库的时候给出警告 |
[s] |
创建归档索引 (cf. ranlib) |
[S] |
不要创建符号表 |
[T] |
make a thin archive |
[v] |
输出较多信息 |
[V] |
显示版本号 |
实例
打包文件
1
ar rv output.bak a.c b.c
1
ar rv output.bak *.c
显示打包文件内容
1
ar t output.bak
解压文件
1
ar x output.bak
bzip2
简述
bzip2
是一个优秀的压缩算法,在 Linux 中经常被使用。
可以在 Linux 命令行中直接调用此工具。
可以使用 Bandizip 来解压缩。
特征
后缀是 .bz2
命令
命令 | 作用 |
---|---|
-c |
将压缩与解压缩的结果送到标准输出 |
-d |
执行解压缩 |
-f |
bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数 |
-k |
bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数 |
-s |
降低程序执行时内存的使用量 |
-t |
测试 .bz2 压缩文件的完整性 |
-v |
压缩或解压缩文件时,显示详细的信息 |
-z |
强制执行压缩 |
-V |
显示版本信息 |
-# |
指定压缩比;默认是6;数字越大压缩比越大(1-9) |
实例
压缩
1
bzip2 filename
压缩会将原来的文件删除,然后输出
filename.bz2
,如果需要保留原文件请使用-k
。解压
1
bzip2 -d filename
解压会将压缩包删除,然后如果
filename
里有后缀.bz2
,则输出无后缀的文件;如果没有后缀,则输出同名文件。如果需要保留原文件请使用-k
。
cpio
简述
cpio
是用来建立,还原备份档的工具程序,它可以加入,解开
cpio
或 tar
备份档内的文件。
特征
后缀是 .cpio
命令
命令 | 作用 |
---|---|
-o |
指定运行为copy-out模式,即归档模式 |
-i |
指定运行为copy-in模式,即提取模式 |
-p |
指定运行为copy-pass模式,即目录拷贝模式 |
-t |
列出归档文件中的文件列表 |
-d |
当需要的时候自动创建目录 |
-v |
详细显示指令的执行过程 |
实例
归档
1
ls | cpio -ov > obj.cpio
将当前目录的文件归档到
obj.cpio
中提取
1
cpio -idv < obj.cpio
提取归档文件
obj.cpio
gzip
简述
gzip
的是标准的,广泛使用的文件压缩和解压工具。
gzip
允许文件级联。
可以直接在 Linux 命令行中调用此工具。
可以使用 Bandizip 解压缩。
可以使用 binwalk
软件提取。
特征
后缀为 .gz
命令
命令 | 作用 |
---|---|
-c |
将输出写到标准输出上,并保留原有文件 |
-d |
将压缩文件解压 |
-l |
对每个压缩文件,显示下列字段: 压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字 |
-r |
递归式地查找指定目录并压缩其中的所有文件或者是解压缩 |
-t |
测试,检查压缩文件是否完整 |
-v |
对每一个压缩和解压的文件,显示文件名和压缩比 |
-# |
指定压缩比(1-9),系统缺省值为 6。 |
实例
压缩
1
gzip filename
解压
1
gzip -dv filename
列出压缩文件信息
1
gzip -l filename
lz4
简述
lz4
在压缩率上略微逊色,
但是在解压速度上有着惊人的优势。
因为压缩时高效的多核利用,再加上惊艳的解压,lz4
已经在非常多重要场合使用了
特征
后缀为 .lz4
命令
命令 | 作用 |
---|---|
-d |
解压缩(默认为 .lz4 扩展名) |
-z |
强制压缩 |
-f |
覆盖输出而不提示 |
-k |
保留源文件(默认) |
-v |
详细模式 |
-q |
取消警告;指定两次也可以取消错误 |
-t |
测试压缩文件完整性 |
-m |
多个输入文件(表示自动输出文件名) |
-r |
在目录上递归操作(也设置为-m) |
-l |
使用旧格式压缩(Linux内核压缩) |
-# |
压缩效率(1-9),默认为1 |
实例
压缩
1
lz4 filename
解压
1
lz4 -d filename
lzip
简述
lzip
是一个无损的数据压缩和解压缩工具,它采用的是 LZMA
算法。
可以使用 Bandizip 解压缩
特征
后缀为 .lz
实例
压缩
1
lzip filename
解压
1
lzip -d filename
lzma
简述
LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77算法改良和优化后的压缩算法,开发者是Igor Pavlov,2001年被首次应用于7-Zip压缩工具中,是 2001年以来得到发展的一个数据压缩算法。
Linux 命令行中可以直接调用 lzma
工具。
可以使用 Bandizip 解压缩。
特征
后缀为 .lzma
命令
命令 | 作用 |
---|---|
-d |
解压缩 |
-f |
强制解压/压缩,忽略一切问题,比如:目标文件已经存在,直接覆盖等 |
-k |
不删除原始文件 |
-t |
测试,不解压 |
-v |
显示进度等信息, |
-z |
强制压缩 |
-# |
压缩比(1-9),默认1 |
实例
压缩
1
lzma test.tar
默认删除文件,如果需要保留需要使用
-k
选项解压
1
lzma -d test.tar.lzma
默认删除文件,如果需要保留需要使用
-k
选项
lzop
简述
lzop
工具最适合在注重压缩速度的场合,压缩文件时会新建
.lzo
文件,而原文件保持不变 (使用 -U
选项除外)
特征
后缀为 .lzo
命令
命令 | 作用 |
---|---|
-d |
解压缩 |
-f |
强制解压/压缩,忽略一切问题,比如:目标文件已经存在,直接覆盖等 |
-l |
列出压缩文件的信息 |
-U |
删除原始文件 |
-t |
测试,不解压 |
-v |
显示进度等信息, |
-z |
强制压缩 |
-# |
压缩比(1-9),默认1 |
实例
压缩
1
lzop filename
解压
1
lzop -dv filename.lzo
tar
简述
Linux tar
(英文全拼:tape archive
)命令用于备份文件。
tar
是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
可以使用 Bandizip 解压缩
特征
后缀为 .tar
命令
命令 | 作用 |
---|---|
-c |
建立一个压缩文件 |
-x |
将压缩文件解压 |
-t |
查看压缩文件详细信息 |
-z |
是否需要用 gzip 压缩 |
-j |
是否需要用 bzip2 压缩 |
-v |
显示详细信息 |
-f |
指定档名 |
-p |
使用原文件的原来属性 |
实例
打包
1
tar -cvf test.tar test.txt
以
gzip
压缩1
tar -zcvf test.tar test.txt
以
bzip2
压缩1
tar -jcvf test.tar test.txt
解压缩
1
tar -zxvf test.tar
还可以指定压缩包内的某个文件打开
1
tar -zxvf test.tar test.txt
xz
简述
xz
是一种压缩文件格式,采用LZMA SDK压缩,目标文件较
gzip
压缩文件小。
可以使用 Bandizip 解压缩。
特征
文件后缀为 .xz
命令
命令 | 作用 |
---|---|
-d |
解压缩 |
-z |
强制压缩 |
-f |
覆盖输出而不提示 |
-k |
保留源文件(默认) |
-v |
详细模式 |
-q |
取消警告;指定两次也可以取消错误 |
-t |
测试压缩文件完整性 |
-m |
多个输入文件(表示自动输出文件名) |
-r |
在目录上递归操作(也设置为-m) |
-l |
使用旧格式压缩(Linux内核压缩) |
-# |
压缩效率(1-9),默认为6 |
实例
压缩
1
xz test.txt
解压
1
xz -d test.txt.xz