1
0
wiki/FormalSciences/ComputerScience/OperatingSystem/Linux/3.Basics/3.1-Linux 文件管理.md
2024-10-14 16:48:38 +08:00

451 lines
29 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Linux 文件管理
description: Linux 文件管理
keywords:
- Linux
- 文件管理
tags:
- FormalSciences/ComputerScience
- OperatingSystem/Linux
author: 7Wate
date: 2023-03-30
---
## 概述
Linux 文件系统是指在 Linux 操作系统上对磁盘空间进行组织、管理和访问的一种机制。Linux 文件系统使用了树形结构的文件目录结构,每个文件都被组织在文件夹中,并按照一定的权限进行管理。
常见的 Linux 文件系统包括 ext2、ext3、ext4、XFS、Btrfs 等。其中ext 系列是最常用的 Linux 文件系统它使用索引节点inode来管理文件支持文件系统日志journal能够更好地防止数据丢失和损坏。
在 Linux 中,文件和目录被组织在一个单一的目录树中,以根目录“/”为起点。用户可以通过终端命令或者图形化界面访问和管理文件和目录。Linux 文件系统支持权限和访问控制,可以对文件和目录设置用户和组的权限,以控制对文件的访问和操作。
Linux 文件系统还支持链接,包括硬链接和符号链接。硬链接是指将一个文件名指向另一个文件的实际内容,从而实现文件名的共享和链接;符号链接则是指将一个文件名指向另一个文件名,从而实现文件名的共享和链接。
Linux 文件系统还支持磁盘配额可以对用户或者组的磁盘空间使用量进行限制。此外Linux 文件系统还支持快照和备份等高级特性,以便在文件丢失或损坏时进行数据恢复。
Linux 文件系统是 Linux 操作系统中重要的组成部分,它提供了一种方便、安全和高效的数据存储和管理机制。
## 管理维护
### 目录操作
| 操作 | 命令 | 描述 | 示例 |
| ---- | ------- | -------------------------------- | ----------------------------- |
| 查看 | `ls` | 列出目录内容 | `ls -l /home` |
| | `pwd` | 显示当前工作目录 | `pwd` |
| | `tree` | 以树形结构显示目录和文件 | `tree /home/user` |
| 创建 | `mkdir` | 创建新目录 | `mkdir /home/new_directory` |
| 复制 | `cp` | 复制目录或文件 | `cp -R /source /destination` |
| 移动 | `cd` | 更改当前工作目录 | `cd /home/user` |
| | `pushd` | 将当前目录压入栈,并切换到新目录 | `pushd /home/new_directory` |
| | `popd` | 从栈中弹出目录并切换回去 | `popd` |
| 删除 | `rmdir` | 删除空目录 | `rmdir /home/empty_directory` |
### 文件操作
| 操作 | 命令 | 描述 | 示例 |
| ---- | --------- | ------------------------------ | ------------------------------------ |
| 查看 | `file` | 确定文件类型 | `file file.txt` |
| | `cat` | 显示文件内容 | `cat file.txt` |
| | `more` | 分页显示文件内容 | `more file.txt` |
| | `less` | 可以向前和向后翻页显示文件内容 | `less file.txt` |
| | `head` | 显示文件的开头部分 | `head -n 5 file.txt` |
| | `tail` | 显示文件的末尾部分 | `tail -n 5 file.txt` |
| 查找 | `whereis` | 查找可执行文件、源码和手册页 | `whereis python3` |
| | `which` | 显示可执行文件的位置 | `which python3` |
| | `find` | 搜索文件和目录 | `find /home -name "file.txt"` |
| 创建 | `touch` | 创建空文件或更新文件时间戳 | `touch new_file.txt` |
| | `ln` | 创建硬链接和符号链接 | `ln -s source_file.txt link.txt` |
| 复制 | `cp` | 复制文件 | `cp source_file.txt destination.txt` |
| 移动 | `mv` | 移动文件或目录 | `mv source_file.txt destination.txt` |
| 删除 | `rm` | 删除文件或目录 | `rm file.txt` |
## 文件处理
### 基础
| 命令 | 描述 | 示例 |
| ------ | ------------------------------ | ------------------------- |
| `grep` | 在文件中搜索字符串或正则表达式 | `grep "pattern" file.txt` |
| `sed` | 流编辑器,用于对文本文件进行基于行的编辑 | `sed 's/foo/bar/g' input.txt > output.txt` |
| `diff` | 比较文件差异 | `diff file1.txt file2.txt` |
| `diff3` | 比较三个文件差异 | `diff3 file1.txt file2.txt file3.txt` |
| `md5sum` | 计算文件的 MD5 校验和 | `md5sum file.txt` |
| `awk` | 文本处理工具,用于对文本进行模式扫描和处理 | `awk '{ print $1 }' file.txt` |
| `sort` | 对文件中的行进行排序 | `sort file.txt` |
| `uniq` | 去除文件中的重复行 | `uniq file.txt` |
| `tr` | 翻译或删除字符 | `tr 'a-z' 'A-Z' < input.txt > output.txt` |
| `wc` | 计算字节数、字符数、行数 | `wc file.txt` |
| `cut` | 从文件中移除一部分 | `cut -f 1,3 -d ',' file.txt` |
| `paste` | 横向连接文件 | `paste file1.txt file2.txt` |
### Nano
Nano 是一款基于命令行的文本编辑器,它是 Linux 中最常用的编辑器之一。以下是 Nano 的常用命令:
| 命令 | 功能 |
| ---------- | -------------------- |
| `Ctrl + G` | 显示帮助文档 |
| `Ctrl + O` | 保存文件 |
| `Ctrl + X` | 退出 Nano |
| `Ctrl + K` | 剪切当前行 |
| `Ctrl + U` | 粘贴剪切的行 |
| `Ctrl + W` | 查找文本 |
| `Ctrl + \` | 替换文本 |
| `Ctrl + ↑` | 移动到文本的上一屏 |
| `Ctrl + ↓` | 移动到文本的下一屏 |
| `Ctrl + →` | 移动到文本的下一单词 |
| `Ctrl + ←` | 移动到文本的上一单词 |
下面是一些 Nano 编辑器的使用示例:
1. 打开文件:
```shell
Copy code
nano filename.txt
```
这将打开一个名为 “filename.txt” 的文件,并将其用 Nano 编辑器打开。
2. 查找文本:
您可以使用 `Ctrl + W` 来查找文本。输入您想要查找的文本,然后按 `Enter` 键。Nano 将跳转到文本中找到的第一个匹配项。
3. 替换文本:
您可以使用 `Ctrl + \` 来替换文本。输入您想要替换的文本和替换文本,然后按 `Enter` 键。Nano 将替换文本中找到的第一个匹配项。
4. 剪切和粘贴行:
使用 `Ctrl + K` 剪切当前行,使用 `Ctrl + U` 粘贴剪切的行。
5. 移动光标:
使用 `Ctrl + ↑``Ctrl + ↓` 移动到文本的上一屏或下一屏;使用 `Ctrl + →``Ctrl + ←` 移动到文本的下一单词或上一单词。
6. 保存和退出:
使用 `Ctrl + O` 保存文件,使用 `Ctrl + X` 退出 Nano 编辑器。
### Vim
Vim 是一款文本编辑器,也是 Linux 中最常用的编辑器之一。Vim 支持多种编辑模式,包括命令模式、插入模式和可视模式。以下是 Vim 的常用命令:
| 命令 | 功能 |
| ----- | -------------------------- |
| `:w` | 保存文件 |
| `:q` | 退出 Vim |
| `:wq` | 保存文件并退出 Vim |
| `i` | 进入插入模式 |
| `Esc` | 退出插入模式并返回命令模式 |
| `v` | 进入可视模式 |
| `V` | 进入行选择模式 |
| `y` | 复制选中文本 |
| `p` | 粘贴文本 |
| `/` | 查找文本 |
| `:` | 进入命令模式 |
下面是一些 Vim 编辑器的使用示例:
1. 打开文件:
```shell
Copy code
vim filename.txt
```
这将打开一个名为 “filename.txt” 的文件,并将其用 Vim 编辑器打开。
2. 保存文件:
在命令模式下输入 `:w`,然后按 `Enter` 键即可保存文件。
3. 退出 Vim
在命令模式下输入 `:q`,然后按 `Enter` 键即可退出 Vim。
4. 保存文件并退出 Vim
在命令模式下输入 `:wq`,然后按 `Enter` 键即可保存文件并退出 Vim。
5. 插入文本:
在命令模式下按下 `i` 进入插入模式,然后开始编辑文本。
6. 复制和粘贴文本:
进入可视模式(按下 `v`),选择要复制的文本,然后按下 `y` 复制选中文本。返回命令模式后,将光标移动到要粘贴文本的位置,按下 `p` 粘贴文本。
7. 查找文本:
在命令模式下输入 `/`,然后输入要查找的文本并按下 `Enter` 键。Vim 将跳转到文本中找到的第一个匹配项。
## 文件解压缩
### Tar
Tar磁带归档器Tape Archive是一种用于文件打包归档的 UNIX 和 Linux 系统上的实用程序。它能将多个文件和目录合并成一个单独的归档文件便于文件的传输、备份和存储。需要注意的是Tar 本身并不具备压缩功能,但它可以与其他压缩工具(如 Gzip、Bzip2 等)结合使用,以实现文件归档与压缩的需求。
#### 优点
1. 跨平台兼容性Tar 是 UNIX 和 Linux 系统的标准工具,但在其他操作系统(如 Windows、macOS 等)上也有实现,因此具有较强的跨平台兼容性。
2. 保留文件属性Tar 可以在归档过程中保留文件和目录的原始属性(如权限、时间戳等),便于在解包时恢复文件的状态。
3. 可与压缩工具结合:尽管 Tar 本身不具备压缩功能,但可以与 Gzip、Bzip2 等压缩工具结合使用,提供压缩功能。
4. 适用于大型文件集合Tar 能有效地处理大量文件和目录,将它们打包成一个单独的归档文件,便于管理和传输。
#### 缺点
1. 不具备原生压缩功能Tar 本身不具有压缩功能,需要与其他压缩工具结合使用。
2. 压缩效率较低:与一体化的压缩工具相比,使用 Tar 结合其他压缩工具的方式在压缩效率上可能略有不足。
#### 适用场景
1. 文件备份Tar 可以将多个文件和目录打包成一个归档文件,便于进行文件备份和存储。
2. 文件传输:将多个文件和目录打包成一个归档文件,可以方便地进行文件传输,尤其是在网络传输中,减少传输次数和网络开销。
3. 软件发布:开发者经常使用 Tar 打包源代码或二进制文件,方便用户下载和安装。
4. 数据压缩:与压缩工具(如 Gzip、Bzip2 等)结合使用,可以实现文件的归档与压缩。
总的来说,**Tar 是一种非常灵活的文件打包和压缩工具,具有多种压缩格式支持、易于传输和备份、支持文件和目录和支持存档格式等优点。**但是,它的压缩比较低,不支持加密,因此在选择使用 Tar 时,需要根据具体的场景和需求来综合考虑其优缺点。
#### 常见命令
| 命令 | 描述 |
| -------------------------------------------------- | ------------------------ |
| `tar -cvf archive.tar file1 file2 directory1` | 创建归档文件 |
| `tar -xvf archive.tar` | 解压缩归档文件 |
| `tar -tvf archive.tar` | 查看归档文件的内容 |
| `tar -zcvf archive.tar.gz file1 file2 directory1` | 压缩归档文件为.gz 格式 |
| `tar -zxvf archive.tar.gz` | 解压缩.gz 格式的归档文件 |
| `tar -jcvf archive.tar.bz2 file1 file2 directory1` | 压缩归档文件为.bz2 格式 |
| `tar -jxvf archive.tar.bz2` | 解压缩.bz2 格式的归档文件 |
| `tar -P` | 保留绝对路径 |
| `tar --exclude='*.log' directory1` | 排除指定文件或目录 |
#### 常见选项
| 选项 | 全拼 | 功能 |
| ----------- | ------------------- | ----------------------------- |
| `-c` | `--create` | 创建归档文件 |
| `-x` | `--extract` | 解压归档文件 |
| `-t` | `--list` | 查看归档文件中的文件列表 |
| `-f` | `--file` | 指定归档文件的名称 |
| `-z` | `--gzip` | 使用 gzip 压缩算法压缩归档文件 |
| `-j` | `--bzip2` | 使用 bzip2 压缩算法压缩归档文件 |
| `-v` | `--verbose` | 在执行操作时显示详细信息 |
| `-P` | `--absolute-names` | 保留文件和目录的绝对路径 |
| `--exclude` | `--exclude=PATTERN` | 排除匹配指定模式的文件或目录 |
### Zip
ZIPZone Information Protocol是一种广泛使用的文件压缩和归档格式工具它可以将多个文件或目录打包成一个单独的文件以便于传输、备份和存档。这种格式最初是由 Phil Katz 在 1989 年开发的,现在已成为一种通用的归档和压缩标准。
#### 优点
1. 跨平台兼容性Zip 是一种通用的文件压缩和归档格式,几乎所有的操作系统(如 Windows、macOS、Linux 等)都支持 Zip 格式,具有很强的跨平台兼容性。
2. 集成压缩和归档功能Zip 同时具备文件压缩和归档功能,可以将多个文件和目录压缩成一个文件,便于传输和存储。
3. 压缩率适中Zip 格式的压缩率适中,能有效减少文件大小,从而节省存储空间和加快文件传输速度。
4. 随机访问Zip 支持随机访问,可以在不解压整个压缩包的情况下提取单个文件。
5. 密码保护Zip 格式支持为压缩文件设置密码,以提高文件的安全性。
#### 缺点
1. 压缩效率:与一些专门的压缩算法(如 7z、Bzip2 等相比Zip 的压缩效率较低,可能无法获得最佳的压缩效果。
2. 加密安全性Zip 的标准加密算法较弱,容易受到密码破解工具的攻击。虽然现代的 Zip 实现支持更强大的加密算法,但并非所有的压缩工具都支持这些算法。
#### 适用场景
1. 文件传输Zip 可以将多个文件和目录压缩成一个文件,减小文件大小,方便在不同设备和平台之间进行传输。
2. 文件存储:将文件和目录压缩成 Zip 格式,可以节省存储空间,便于备份和管理。
3. 软件分发:开发者经常使用 Zip 格式打包软件和资源,便于用户下载和安装。
4. 文档压缩:将文档、图片等资料压缩成 Zip 格式,方便存储和分享。
总的来说Zip 是一种广泛使用的文件压缩和归档格式具有很强的跨平台兼容性。它可以将多个文件和目录压缩成一个文件便于传输和存储。Zip 的压缩率适中,支持随机访问和密码保护。然而,与一些专门的压缩算法(如 7z、Bzip2 等相比Zip 的压缩效率较低,可能无法获得最佳的压缩效果。
此外,虽然 Zip64 扩展已经解决了传统 Zip 格式中的 4GB 文件大小限制,但并非所有的压缩解压缩工具都支持 Zip64因此在处理大文件时需要注意选择合适的工具。
#### 常见命令
| 命令 | 描述 |
| ---------------------------------------- | --------------------------------- |
| `zip archive.zip file1 file2 directory1` | 创建 Zip 归档文件 |
| `unzip archive.zip` | 解压缩 Zip 归档文件 |
| `zip -r archive.zip directory1` | 压缩目录为 Zip 归档文件 |
| `unzip -l archive.zip` | 列出 Zip 归档文件中的文件列表 |
| `zip -e archive.zip file1 file2` | 使用加密算法压缩文件为 Zip 归档文件 |
#### 常见选项
| 选项 | 全拼 | 功能 |
| ---- | ----------------- | ----------------------------- |
| `-r` | `--recurse-paths` | 递归压缩目录及其所有子目录 |
| `-e` | `--encrypt` | 使用加密算法压缩文件 |
| `-d` | `--delete` | 从 Zip 归档文件中删除文件 |
| `-u` | `--update` | 更新 Zip 归档文件中的文件 |
| `-l` | `--list` | 列出 Zip 归档文件中的文件列表 |
| `-v` | `--verbose` | 在执行操作时显示详细信息 |
| `-q` | `--quiet` | 在执行操作时禁止输出 |
| `-f` | `--file` | 指定归档文件的名称 |
| `-z` | `--gzip` | 使用 gzip 压缩算法压缩归档文件 |
| `-j` | `--bzip2` | 使用 bzip2 压缩算法压缩归档文件 |
### Gzip
GzipGNU zip是一种广泛使用的文件压缩和解压缩工具。它基于 DEFLATE 算法,该算法结合了 LZ77Lempel-Ziv 77和 Huffman 编码技术能够有效地压缩文件。Gzip 主要用于压缩单个文件,而不是整个目录结构。在 Linux 和 Unix 系统中Gzip 常与 Tar磁带归档器结合使用以实现文件归档和压缩的双重功能。
#### 优点
1. 高压缩率Gzip 通常能提供较高的压缩率,从而降低文件大小,节省存储空间和带宽。
2. 快速压缩和解压缩速度Gzip 在保证较高压缩率的同时,压缩和解压缩速度相对较快。
3. 跨平台兼容性Gzip 在 Linux、Unix、macOS 和 Windows 等操作系统上都有实现,具有良好的跨平台兼容性。
4. 开源和免费Gzip 是 GNU 项目的一部分,遵循开源协议,免费提供给用户使用。
#### 缺点
1. **仅支持单文件压缩**Gzip 本身只能压缩单个文件,无法直接压缩目录。通常需要与 Tar 等归档工具结合使用。
2. **压缩效率高**:虽然 Gzip 的压缩效率较高,但与一些专门的压缩算法(如 7z、Bzip2 等)相比,可能无法获得最佳的压缩效果。
#### 适用场景
- 文件传输Gzip 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销。
- 网页优化:服务器可以使用 Gzip 压缩网页内容,提高传输速度,降低带宽消耗,提高用户体验。
- 数据存储Gzip 可以用于压缩文档、日志文件等,节省存储空间。
- 软件分发:开发者可以将源代码或二进制文件压缩为 Gzip 格式,便于用户下载和安装。
总之Gzip 是一种广泛使用的文件压缩工具,基于 DEFLATE 算法,提供较高的压缩率和较快的压缩速度。尽管 Gzip 仅支持单文件压缩,但可以与 Tar 等归档工具结合使用,实现目录的压缩。具有良好的跨平台兼容性和开源性质,适用于文件传输、网页优化、数据存储和软件分发等场景。在压缩效率方面,虽然 Gzip 表现出色,但可能无法与一些专门的压缩算法(如 7z、Bzip2 等)相媲美。
#### 常见命令
| 命令 | 描述 |
| --------------------- | -------------------------------------------- |
| `gzip file.txt` | 压缩文件“file.txt” |
| `gzip -r directory1` | 递归压缩目录“directory1”及其所有子目录和文件 |
| `gzip -d file.txt.gz` | 解压缩 Gzip 压缩的文件“file.txt.gz” |
| `gzip -l file.txt.gz` | 查看 Gzip 压缩文件“file.txt.gz”的详细信息 |
| `gzip -v file.txt` | 压缩文件“file.txt”并显示压缩进度 |
#### 常见选项
| 选项 | 选项全称 | 功能 |
| ---- | -------------- | ---------------------------- |
| `-d` | `--decompress` | 解压缩文件 |
| `-r` | `--recursive` | 递归压缩目录及其所有子目录 |
| `-l` | `--list` | 列出 Gzip 压缩文件的详细信息 |
| `-v` | `--verbose` | 显示操作的详细信息 |
| `-q` | `--quiet` | 禁止输出操作信息 |
| `-f` | `--force` | 强制执行操作,即使会覆盖文件 |
| `-t` | `--test` | 测试 Gzip 压缩文件的完整性 |
| `-k` | `--keep` | 保留原始文件,不删除压缩文件 |
### Bzip2
Bzip2 是一款开源的文件压缩工具,使用 Burrows-Wheeler 算法BWT以及哈夫曼编码进行文件压缩。Bzip2 专注于提供高压缩率,通常能够比 Gzip 提供更高的压缩效果,但相应的压缩和解压缩速度较慢。与 Gzip 类似Bzip2 主要用于压缩单个文件,而不是整个目录结构。在 Linux 和 Unix 系统中Bzip2 也常与 Tar 归档工具结合使用。
#### 优点
1. 高压缩率Bzip2 通常能提供比 Gzip 更高的压缩率,从而进一步减小文件大小,节省存储空间和带宽。
2. 开源和免费Bzip2 是一个开源项目,可以免费使用。
3. 跨平台兼容性Bzip2 在 Linux、Unix、macOS 和 Windows 等操作系统上都有实现,具有良好的跨平台兼容性。
#### 缺点
1. 速度较慢:由于 Bzip2 的高压缩率,压缩和解压缩速度相对较慢,特别是与 Gzip 相比。
2. 仅支持单文件压缩Bzip2 本身只能压缩单个文件,无法直接压缩目录。通常需要与 Tar 等归档工具结合使用。
#### 适用场景
1. 文件存储当存储空间有限且需要高压缩率时Bzip2 可用于压缩文档、日志文件等。
2. 文件传输Bzip2 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销,尤其在对压缩率要求较高的场景中。
3. 软件分发:开发者可以将源代码或二进制文件压缩为 Bzip2 格式,以获得更小的文件体积,便于用户下载和安装。
简单总结Bzip2 是一款开源的文件压缩工具,使用 Burrows-Wheeler 算法和哈夫曼编码提供较高的压缩率但压缩和解压缩速度较慢。Bzip2 主要用于压缩单个文件,可以与 Tar 等归档工具结合使用,具有良好的跨平台兼容性。适用于文件存储、传输和软件分发等场景,特别是在对压缩率要求较高的情况下。
#### 常见命令
| 命令 | 描述 |
| ----------------------- | ----------------------------------------- |
| `bzip2 file.txt` | 压缩文件“file.txt” |
| `bzip2 -k file.txt` | 压缩文件“file.txt”并保留原始文件 |
| `bzip2 -d file.txt.bz2` | 解压缩 Bzip2 压缩的文件“file.txt.bz2” |
| `bzip2 -l file.txt.bz2` | 查看 Bzip2 压缩文件“file.txt.bz2”的详细信息 |
| `bzip2 -v file.txt` | 压缩文件“file.txt”并显示压缩进度 |
#### 常见选项
| 选项 | 选项全称 | 功能 |
| ---- | -------------- | ------------------------------------------------------------ |
| -c | --stdout | 将输出写入标准输出,而不是写入压缩文件。 |
| -d | --decompress | 解压缩 Bzip2 压缩文件,生成原始文件。 |
| -f | --force | 强制覆盖现有的压缩文件,而不提示。 |
| -k | --keep | 保留原始文件,不删除生成的压缩文件。 |
| -q | --quiet | 不显示任何压缩和解压缩过程的信息。 |
| -t | --test | 测试 Bzip2 压缩文件的完整性。 |
| -v | --verbose | 显示详细的压缩和解压缩过程的信息。 |
| -z | --compress | 使用 Bzip2 进行压缩,生成 Bzip2 压缩文件(默认选项)。 |
| -1 | --fast | 使用 1 级别的压缩,生成速度快,压缩比低的压缩文件。 |
| -2 | --best | 使用 2 级别的压缩,生成速度慢,压缩比高的压缩文件(默认级别)。 |
| -3 | --small | 使用 3 级别的压缩,生成速度较慢,压缩比更高的压缩文件。 |
| -4 | | 使用 4 级别的压缩,生成速度更慢,压缩比更高的压缩文件。 |
| -5 | | 使用 5 级别的压缩,生成速度更慢,压缩比更高的压缩文件。 |
| -6 | | 使用 6 级别的压缩,生成速度更慢,压缩比更高的压缩文件。 |
| -7 | | 使用 7 级别的压缩,生成速度更慢,压缩比更高的压缩文件。 |
| -8 | | 使用 8 级别的压缩,生成速度更慢,压缩比更高的压缩文件。 |
| -9 | --best-quality | 使用 9 级别的压缩,生成速度最慢,压缩比最高的压缩文件。 |
### 7z
7z7-Zip是一款开源的文件压缩和解压缩工具主要使用 LZMALempel-Ziv-Markov 链算法)和 LZMA2 算法进行压缩。7z 格式以高压缩率和高压缩速度而著称,通常能够提供比 Gzip 和 Bzip2 更高的压缩效果。除了 7z 格式7-Zip 还支持其他压缩格式,如 ZIP、Gzip、Bzip2、Tar 等。
#### 优点
1. 高压缩率7z 格式通常能提供非常高的压缩率,从而进一步减小文件大小,节省存储空间和带宽。
2. 压缩速度7z 在保证高压缩率的同时,压缩速度相对较快。
3. 多文件支持7z 支持压缩多个文件和目录结构,无需额外的归档工具。
4. 密码保护7z 支持使用 AES-256 加密算法对压缩文件进行密码保护。
5. 开源和免费7-Zip 是一个开源项目,可以免费使用。
6. 跨平台兼容性7-Zip 在 Windows、Linux 和 macOS 等操作系统上都有实现,具有良好的跨平台兼容性。
#### 缺点
1. 广泛支持度:尽管 7z 格式具有许多优点,但与 ZIP 和 Gzip 相比,它的支持和普及程度相对较低。
2. 可能需要额外软件:在某些操作系统(如 macOS 和 Linux可能需要额外安装 7-Zip 或类似工具,以支持 7z 格式。
#### 适用场景
1. 文件存储当存储空间有限或需要高压缩率时7z 可用于压缩文档、日志文件等。
2. 文件传输7z 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销。
3. 软件分发:开发者可以将源代码或二进制文件压缩为 7z 格式,以获得更小的文件体积,便于用户下载和安装。
4. 数据备份7z 支持压缩大量文件和目录结构,适用于对数据进行备份和归档。
简单总结7z 是一款开源的文件压缩工具,使用 LZMA 和 LZMA2 算法提供高压缩率和较快的压缩速度。7z 支持压缩多个文件和目录结构,支持密码保护,具有良好的跨平台
#### 常见命令
| 命令 | 描述 |
| ------------------------------- | ------------------------------------------------------------ |
| 7z a archive.7z file1 file2 | 将 file1 和 file2 添加到名为 archive.7z 的压缩文件中 |
| 7z a -r archive.7z folder | 将 folder 目录及其子目录递归添加到名为 archive.7z 的压缩文件中 |
| 7z e archive.7z | 从 archive.7z 提取文件,不保留目录结构 |
| 7z x archive.7z | 从 archive.7z 提取文件,保留目录结构 |
| 7z l archive.7z | 显示名为 archive.7z 的压缩文件中的文件列表 |
| 7z t archive.7z | 测试名为 archive.7z 的压缩文件的完整性 |
| 7z a -pPASSWORD archive.7z file | 将 file 添加到名为 archive.7z 的压缩文件中,并使用密码 PASSWORD 保护 |
| 7z a -sfx archive.exe file | 创建名为 archive.exe 的自解压缩可执行文件,其中包含 file |
| 7z a -tzip archive.zip file | 将 file 添加到名为 archive.zip 的 ZIP 格式压缩文件中 |
| 7z a archive.7z -v100m file | 将 file 添加到名为 archive.7z 的压缩文件中,并创建 100MB 的分卷文件 |
#### 常见选项
| 选项 | 全拼 | 功能 |
| ---- | ----------------------- | ----------------------------------------- |
| a | Add | 添加文件到压缩文件 |
| e | Extract | 提取压缩文件,不保留目录结构 |
| l | List | 显示压缩文件中的文件列表 |
| t | Test | 测试压缩文件的完整性 |
| x | eXtract with full paths | 提取压缩文件,保留目录结构 |
| -p | Password | 设置压缩文件的密码 |
| -r | Recurse | 递归处理子文件夹 |
| -sfx | Create SFX archive | 创建自解压缩可执行文件 |
| -t | Type | 指定压缩文件的类型(如 7z、zip、gzip 等) |
| -v | Create volumes | 创建多卷压缩文件 |