00. 目录
01. 命令概述
Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。
bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
02. 命令格式
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]
- 1
03. 常用选项
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
--repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
--repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
04. 参考示例
4.1 不保留原文件压缩
[deng@localhost test]$ bzip2 passwd
[deng@localhost test]$ ls
etc passwd1 passwd.bz2 test
[deng@localhost test]$
- 1
- 2
- 3
- 4
4.2 保留原文件压缩
[deng@localhost test]$ bzip2 -c passwd > passwd1.bz2
[deng@localhost test]$ ls
etc passwd passwd1.bz2 passwd.bz2 test
- 1
- 2
- 3
4.3 压缩时显示指令执行过程
[deng@localhost test]$ bzip2 -v passwd
passwd: 2.420:1, 3.306 bits/byte, 58.67% saved, 2376 in, 982 out.
[deng@localhost test]$
- 1
- 2
- 3
4.4 将当前目录下每个文件压缩成 .bz2 文件
[deng@localhost test]$ ls
a b c d e
[deng@localhost test]$ bzip2 *
[deng@localhost test]$ ls
a.bz2 b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
**注意:**如果是目录,将被忽略。
4.5 解压.bz2文件,不保留原文件
[deng@localhost test]$ ls
a.bz2 b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$ bzip2 -d a.bz2
[deng@localhost test]$ ls
a b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
4.6 解压当前目录下所有的.gz文件
[deng@localhost test]$ ls
a b.bz2 c.bz2 d.bz2 e.bz2
[deng@localhost test]$ bzip2 -d *.bz2
[deng@localhost test]$ ls
a b c d e
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
4.7 保留原文件解压
[deng@localhost test]$ bzip2 -dc passwd.bz2 > passwd
- 1
4.8 保留原文件解压到标准输出
[deng@localhost test]$ bzip2 -dc passwd.bz2
- 1
4.9 测试.bz2压缩文件的完整性,实际上不解压
[deng@localhost test]$ bzip2 -tv passwd.bz2
passwd.bz2: ok
[deng@localhost test]$
- 1
- 2
- 3
4.10 -k保留原文件压缩
[deng@localhost test]$ bzip2 -k passwd
[deng@localhost test]$ ls
etc passwd passwd1 passwd.bz2 test
[deng@localhost test]$
- 1
- 2
- 3
- 4
4.11 压缩-开头的文件
[deng@localhost test]$ touch -- -file
[deng@localhost test]$ ls
etc -file passwd passwd1 passwd.bz2 test
[deng@localhost test]$ bzip2 -- -file
[deng@localhost test]$ ls
etc -file.bz2 passwd passwd1 passwd.bz2 test
[deng@localhost test]$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这里主要是为了防止文件名中-产生以为是选项的歧义。
05. 附录
内核简介
OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等。支持驱动框架HDF(Hardware Driver Foundation),统一驱动标准,为设备厂商提供了更统一的接入方式,使驱动更加容易移植,力求做到一次开发,多系统部署。
OpenHarmony LiteOS-M内核架构包含硬件相关层以及硬件无关层,如下图所示,其中硬件相关层按不同编译工具链、芯片架构分类,提供统一的HAL(Hardware Abstraction Layer)接口,提升了硬件易适配性,满足AIoT类型丰富的硬件和编译工具链的拓展;其他模块属于硬件无关层,其中基础内核模块提供基础能力,扩展模块提供网络、文件系统等组件能力,还提供错误处理、调测等能力,KAL(Kernel Abstraction Layer)模块提供统一的标准接口。
图1 内核架构图
CPU体系架构支持
CPU体系架构分为通用架构定义和特定架构定义两层,通用架构定义层为所有体系架构都需要支持和实现的接口,特定架构定义层为特定体系架构所特有的部分。在新增一个体系架构的时候,必须需要实现通用架构定义层,如果该体系架构还有特有的功能,可以在特定架构定义层来实现。
表1 CPU体系架构规则
class="table-box">规则 | 通用体系架构层 | 特定体系架构层 |
---|---|---|
头文件位置 | arch/include | arch |
头文件命名 | los_.h | los_arch_.h |
函数命名 | Halxxxx | Halxxxx |
评论记录:
回复评论: