2023-04-03 16:17:51 +08:00
|
|
|
|
---
|
2023-04-24 11:01:43 +08:00
|
|
|
|
title: Linux 文件管理
|
|
|
|
|
description: Linux 文件管理
|
2023-04-03 16:17:51 +08:00
|
|
|
|
keywords:
|
2023-11-09 17:30:33 +08:00
|
|
|
|
- Linux
|
|
|
|
|
- 文件管理
|
2023-04-03 16:17:51 +08:00
|
|
|
|
tags:
|
2023-11-09 17:30:33 +08:00
|
|
|
|
- Linux/基础
|
2024-04-26 21:42:22 +08:00
|
|
|
|
- 技术/操作系统
|
2023-04-03 16:17:51 +08:00
|
|
|
|
author: 7Wate
|
|
|
|
|
date: 2023-03-30
|
|
|
|
|
---
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
## 概述
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
Linux 文件系统是指在 Linux 操作系统上,对磁盘空间进行组织、管理和访问的一种机制。Linux 文件系统使用了树形结构的文件目录结构,每个文件都被组织在文件夹中,并按照一定的权限进行管理。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
常见的 Linux 文件系统包括 ext2、ext3、ext4、XFS、Btrfs 等。其中,ext 系列是最常用的 Linux 文件系统,它使用索引节点(inode)来管理文件,支持文件系统日志(journal),能够更好地防止数据丢失和损坏。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
在 Linux 中,文件和目录被组织在一个单一的目录树中,以根目录“/”为起点。用户可以通过终端命令或者图形化界面访问和管理文件和目录。Linux 文件系统支持权限和访问控制,可以对文件和目录设置用户和组的权限,以控制对文件的访问和操作。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
Linux 文件系统还支持链接,包括硬链接和符号链接。硬链接是指将一个文件名指向另一个文件的实际内容,从而实现文件名的共享和链接;符号链接则是指将一个文件名指向另一个文件名,从而实现文件名的共享和链接。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
Linux 文件系统还支持磁盘配额,可以对用户或者组的磁盘空间使用量进行限制。此外,Linux 文件系统还支持快照和备份等高级特性,以便在文件丢失或损坏时进行数据恢复。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
Linux 文件系统是 Linux 操作系统中重要的组成部分,它提供了一种方便、安全和高效的数据存储和管理机制。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
## 管理维护
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
### 目录操作
|
|
|
|
|
|
|
|
|
|
| 操作 | 命令 | 描述 | 示例 |
|
|
|
|
|
| ---- | ------- | -------------------------------- | ----------------------------- |
|
|
|
|
|
| 查看 | `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` |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
## 文件处理
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### 基础
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 | 示例 |
|
|
|
|
|
| ------ | ------------------------------ | ------------------------- |
|
|
|
|
|
| `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` |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Nano
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
Nano 是一款基于命令行的文本编辑器,它是 Linux 中最常用的编辑器之一。以下是 Nano 的常用命令:
|
|
|
|
|
|
|
|
|
|
| 命令 | 功能 |
|
|
|
|
|
| ---------- | -------------------- |
|
|
|
|
|
| `Ctrl + G` | 显示帮助文档 |
|
|
|
|
|
| `Ctrl + O` | 保存文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `Ctrl + X` | 退出 Nano |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `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. 保存和退出:
|
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
使用 `Ctrl + O` 保存文件,使用 `Ctrl + X` 退出 Nano 编辑器。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Vim
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
Vim 是一款文本编辑器,也是 Linux 中最常用的编辑器之一。Vim 支持多种编辑模式,包括命令模式、插入模式和可视模式。以下是 Vim 的常用命令:
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 功能 |
|
|
|
|
|
| ----- | -------------------------- |
|
|
|
|
|
| `:w` | 保存文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `:q` | 退出 Vim |
|
|
|
|
|
| `:wq` | 保存文件并退出 Vim |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `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 将跳转到文本中找到的第一个匹配项。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
## 文件解压缩
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Tar
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
Tar(磁带归档器,Tape Archive)是一种用于文件打包(归档)的 UNIX 和 Linux 系统上的实用程序。它能将多个文件和目录合并成一个单独的归档文件,便于文件的传输、备份和存储。需要注意的是,Tar 本身并不具备压缩功能,但它可以与其他压缩工具(如 Gzip、Bzip2 等)结合使用,以实现文件归档与压缩的需求。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 优点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 跨平台兼容性:Tar 是 UNIX 和 Linux 系统的标准工具,但在其他操作系统(如 Windows、macOS 等)上也有实现,因此具有较强的跨平台兼容性。
|
|
|
|
|
2. 保留文件属性:Tar 可以在归档过程中保留文件和目录的原始属性(如权限、时间戳等),便于在解包时恢复文件的状态。
|
|
|
|
|
3. 可与压缩工具结合:尽管 Tar 本身不具备压缩功能,但可以与 Gzip、Bzip2 等压缩工具结合使用,提供压缩功能。
|
|
|
|
|
4. 适用于大型文件集合:Tar 能有效地处理大量文件和目录,将它们打包成一个单独的归档文件,便于管理和传输。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 缺点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 不具备原生压缩功能:Tar 本身不具有压缩功能,需要与其他压缩工具结合使用。
|
|
|
|
|
2. 压缩效率较低:与一体化的压缩工具相比,使用 Tar 结合其他压缩工具的方式在压缩效率上可能略有不足。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 适用场景
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 文件备份:Tar 可以将多个文件和目录打包成一个归档文件,便于进行文件备份和存储。
|
|
|
|
|
2. 文件传输:将多个文件和目录打包成一个归档文件,可以方便地进行文件传输,尤其是在网络传输中,减少传输次数和网络开销。
|
|
|
|
|
3. 软件发布:开发者经常使用 Tar 打包源代码或二进制文件,方便用户下载和安装。
|
|
|
|
|
4. 数据压缩:与压缩工具(如 Gzip、Bzip2 等)结合使用,可以实现文件的归档与压缩。
|
|
|
|
|
|
|
|
|
|
总的来说,**Tar 是一种非常灵活的文件打包和压缩工具,具有多种压缩格式支持、易于传输和备份、支持文件和目录和支持存档格式等优点。**但是,它的压缩比较低,不支持加密,因此在选择使用 Tar 时,需要根据具体的场景和需求来综合考虑其优缺点。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见命令
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
|
| -------------------------------------------------- | ------------------------ |
|
|
|
|
|
| `tar -cvf archive.tar file1 file2 directory1` | 创建归档文件 |
|
|
|
|
|
| `tar -xvf archive.tar` | 解压缩归档文件 |
|
|
|
|
|
| `tar -tvf archive.tar` | 查看归档文件的内容 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `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 格式的归档文件 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `tar -P` | 保留绝对路径 |
|
|
|
|
|
| `tar --exclude='*.log' directory1` | 排除指定文件或目录 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见选项
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 选项 | 全拼 | 功能 |
|
|
|
|
|
| ----------- | ------------------- | ----------------------------- |
|
|
|
|
|
| `-c` | `--create` | 创建归档文件 |
|
|
|
|
|
| `-x` | `--extract` | 解压归档文件 |
|
|
|
|
|
| `-t` | `--list` | 查看归档文件中的文件列表 |
|
|
|
|
|
| `-f` | `--file` | 指定归档文件的名称 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `-z` | `--gzip` | 使用 gzip 压缩算法压缩归档文件 |
|
|
|
|
|
| `-j` | `--bzip2` | 使用 bzip2 压缩算法压缩归档文件 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `-v` | `--verbose` | 在执行操作时显示详细信息 |
|
|
|
|
|
| `-P` | `--absolute-names` | 保留文件和目录的绝对路径 |
|
|
|
|
|
| `--exclude` | `--exclude=PATTERN` | 排除匹配指定模式的文件或目录 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Zip
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
ZIP(Zone Information Protocol)是一种广泛使用的文件压缩和归档格式工具,它可以将多个文件或目录打包成一个单独的文件,以便于传输、备份和存档。这种格式最初是由 Phil Katz 在 1989 年开发的,现在已成为一种通用的归档和压缩标准。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 优点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
1. 跨平台兼容性:Zip 是一种通用的文件压缩和归档格式,几乎所有的操作系统(如 Windows、macOS、Linux 等)都支持 Zip 格式,具有很强的跨平台兼容性。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
2. 集成压缩和归档功能:Zip 同时具备文件压缩和归档功能,可以将多个文件和目录压缩成一个文件,便于传输和存储。
|
|
|
|
|
3. 压缩率适中:Zip 格式的压缩率适中,能有效减少文件大小,从而节省存储空间和加快文件传输速度。
|
|
|
|
|
4. 随机访问:Zip 支持随机访问,可以在不解压整个压缩包的情况下提取单个文件。
|
|
|
|
|
5. 密码保护:Zip 格式支持为压缩文件设置密码,以提高文件的安全性。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 缺点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
1. 压缩效率:与一些专门的压缩算法(如 7z、Bzip2 等)相比,Zip 的压缩效率较低,可能无法获得最佳的压缩效果。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
2. 加密安全性:Zip 的标准加密算法较弱,容易受到密码破解工具的攻击。虽然现代的 Zip 实现支持更强大的加密算法,但并非所有的压缩工具都支持这些算法。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 适用场景
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 文件传输:Zip 可以将多个文件和目录压缩成一个文件,减小文件大小,方便在不同设备和平台之间进行传输。
|
|
|
|
|
2. 文件存储:将文件和目录压缩成 Zip 格式,可以节省存储空间,便于备份和管理。
|
|
|
|
|
3. 软件分发:开发者经常使用 Zip 格式打包软件和资源,便于用户下载和安装。
|
|
|
|
|
4. 文档压缩:将文档、图片等资料压缩成 Zip 格式,方便存储和分享。
|
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
总的来说,Zip 是一种广泛使用的文件压缩和归档格式,具有很强的跨平台兼容性。它可以将多个文件和目录压缩成一个文件,便于传输和存储。Zip 的压缩率适中,支持随机访问和密码保护。然而,与一些专门的压缩算法(如 7z、Bzip2 等)相比,Zip 的压缩效率较低,可能无法获得最佳的压缩效果。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
此外,虽然 Zip64 扩展已经解决了传统 Zip 格式中的 4GB 文件大小限制,但并非所有的压缩解压缩工具都支持 Zip64,因此在处理大文件时需要注意选择合适的工具。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见命令
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
|
| ---------------------------------------- | --------------------------------- |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `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 归档文件 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见选项
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 选项 | 全拼 | 功能 |
|
|
|
|
|
| ---- | ----------------- | ----------------------------- |
|
|
|
|
|
| `-r` | `--recurse-paths` | 递归压缩目录及其所有子目录 |
|
|
|
|
|
| `-e` | `--encrypt` | 使用加密算法压缩文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `-d` | `--delete` | 从 Zip 归档文件中删除文件 |
|
|
|
|
|
| `-u` | `--update` | 更新 Zip 归档文件中的文件 |
|
|
|
|
|
| `-l` | `--list` | 列出 Zip 归档文件中的文件列表 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `-v` | `--verbose` | 在执行操作时显示详细信息 |
|
|
|
|
|
| `-q` | `--quiet` | 在执行操作时禁止输出 |
|
|
|
|
|
| `-f` | `--file` | 指定归档文件的名称 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `-z` | `--gzip` | 使用 gzip 压缩算法压缩归档文件 |
|
|
|
|
|
| `-j` | `--bzip2` | 使用 bzip2 压缩算法压缩归档文件 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Gzip
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
Gzip(GNU zip)是一种广泛使用的文件压缩和解压缩工具。它基于 DEFLATE 算法,该算法结合了 LZ77(Lempel-Ziv 77)和 Huffman 编码技术,能够有效地压缩文件。Gzip 主要用于压缩单个文件,而不是整个目录结构。在 Linux 和 Unix 系统中,Gzip 常与 Tar(磁带归档器)结合使用,以实现文件归档和压缩的双重功能。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 优点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 高压缩率:Gzip 通常能提供较高的压缩率,从而降低文件大小,节省存储空间和带宽。
|
|
|
|
|
2. 快速压缩和解压缩速度:Gzip 在保证较高压缩率的同时,压缩和解压缩速度相对较快。
|
2023-11-09 17:30:33 +08:00
|
|
|
|
3. 跨平台兼容性:Gzip 在 Linux、Unix、macOS 和 Windows 等操作系统上都有实现,具有良好的跨平台兼容性。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
4. 开源和免费:Gzip 是 GNU 项目的一部分,遵循开源协议,免费提供给用户使用。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 缺点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. **仅支持单文件压缩**:Gzip 本身只能压缩单个文件,无法直接压缩目录。通常需要与 Tar 等归档工具结合使用。
|
2023-11-09 17:30:33 +08:00
|
|
|
|
2. **压缩效率高**:虽然 Gzip 的压缩效率较高,但与一些专门的压缩算法(如 7z、Bzip2 等)相比,可能无法获得最佳的压缩效果。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 适用场景
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
- 文件传输:Gzip 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销。
|
|
|
|
|
- 网页优化:服务器可以使用 Gzip 压缩网页内容,提高传输速度,降低带宽消耗,提高用户体验。
|
|
|
|
|
- 数据存储:Gzip 可以用于压缩文档、日志文件等,节省存储空间。
|
|
|
|
|
- 软件分发:开发者可以将源代码或二进制文件压缩为 Gzip 格式,便于用户下载和安装。
|
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
总之,Gzip 是一种广泛使用的文件压缩工具,基于 DEFLATE 算法,提供较高的压缩率和较快的压缩速度。尽管 Gzip 仅支持单文件压缩,但可以与 Tar 等归档工具结合使用,实现目录的压缩。具有良好的跨平台兼容性和开源性质,适用于文件传输、网页优化、数据存储和软件分发等场景。在压缩效率方面,虽然 Gzip 表现出色,但可能无法与一些专门的压缩算法(如 7z、Bzip2 等)相媲美。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见命令
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
|
| --------------------- | -------------------------------------------- |
|
|
|
|
|
| `gzip file.txt` | 压缩文件“file.txt” |
|
|
|
|
|
| `gzip -r directory1` | 递归压缩目录“directory1”及其所有子目录和文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `gzip -d file.txt.gz` | 解压缩 Gzip 压缩的文件“file.txt.gz” |
|
|
|
|
|
| `gzip -l file.txt.gz` | 查看 Gzip 压缩文件“file.txt.gz”的详细信息 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `gzip -v file.txt` | 压缩文件“file.txt”并显示压缩进度 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见选项
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 选项 | 选项全称 | 功能 |
|
|
|
|
|
| ---- | -------------- | ---------------------------- |
|
|
|
|
|
| `-d` | `--decompress` | 解压缩文件 |
|
|
|
|
|
| `-r` | `--recursive` | 递归压缩目录及其所有子目录 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `-l` | `--list` | 列出 Gzip 压缩文件的详细信息 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `-v` | `--verbose` | 显示操作的详细信息 |
|
|
|
|
|
| `-q` | `--quiet` | 禁止输出操作信息 |
|
|
|
|
|
| `-f` | `--force` | 强制执行操作,即使会覆盖文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `-t` | `--test` | 测试 Gzip 压缩文件的完整性 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `-k` | `--keep` | 保留原始文件,不删除压缩文件 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### Bzip2
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
Bzip2 是一款开源的文件压缩工具,使用 Burrows-Wheeler 算法(BWT)以及哈夫曼编码进行文件压缩。Bzip2 专注于提供高压缩率,通常能够比 Gzip 提供更高的压缩效果,但相应的压缩和解压缩速度较慢。与 Gzip 类似,Bzip2 主要用于压缩单个文件,而不是整个目录结构。在 Linux 和 Unix 系统中,Bzip2 也常与 Tar 归档工具结合使用。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 优点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 高压缩率:Bzip2 通常能提供比 Gzip 更高的压缩率,从而进一步减小文件大小,节省存储空间和带宽。
|
|
|
|
|
2. 开源和免费:Bzip2 是一个开源项目,可以免费使用。
|
|
|
|
|
3. 跨平台兼容性:Bzip2 在 Linux、Unix、macOS 和 Windows 等操作系统上都有实现,具有良好的跨平台兼容性。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 缺点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 速度较慢:由于 Bzip2 的高压缩率,压缩和解压缩速度相对较慢,特别是与 Gzip 相比。
|
|
|
|
|
2. 仅支持单文件压缩:Bzip2 本身只能压缩单个文件,无法直接压缩目录。通常需要与 Tar 等归档工具结合使用。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 适用场景
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 文件存储:当存储空间有限且需要高压缩率时,Bzip2 可用于压缩文档、日志文件等。
|
|
|
|
|
2. 文件传输:Bzip2 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销,尤其在对压缩率要求较高的场景中。
|
|
|
|
|
3. 软件分发:开发者可以将源代码或二进制文件压缩为 Bzip2 格式,以获得更小的文件体积,便于用户下载和安装。
|
|
|
|
|
|
|
|
|
|
简单总结:Bzip2 是一款开源的文件压缩工具,使用 Burrows-Wheeler 算法和哈夫曼编码,提供较高的压缩率,但压缩和解压缩速度较慢。Bzip2 主要用于压缩单个文件,可以与 Tar 等归档工具结合使用,具有良好的跨平台兼容性。适用于文件存储、传输和软件分发等场景,特别是在对压缩率要求较高的情况下。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见命令
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
|
| ----------------------- | ----------------------------------------- |
|
|
|
|
|
| `bzip2 file.txt` | 压缩文件“file.txt” |
|
|
|
|
|
| `bzip2 -k file.txt` | 压缩文件“file.txt”并保留原始文件 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| `bzip2 -d file.txt.bz2` | 解压缩 Bzip2 压缩的文件“file.txt.bz2” |
|
|
|
|
|
| `bzip2 -l file.txt.bz2` | 查看 Bzip2 压缩文件“file.txt.bz2”的详细信息 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| `bzip2 -v file.txt` | 压缩文件“file.txt”并显示压缩进度 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见选项
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 选项 | 选项全称 | 功能 |
|
|
|
|
|
| ---- | -------------- | ------------------------------------------------------------ |
|
|
|
|
|
| -c | --stdout | 将输出写入标准输出,而不是写入压缩文件。 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| -d | --decompress | 解压缩 Bzip2 压缩文件,生成原始文件。 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| -f | --force | 强制覆盖现有的压缩文件,而不提示。 |
|
|
|
|
|
| -k | --keep | 保留原始文件,不删除生成的压缩文件。 |
|
|
|
|
|
| -q | --quiet | 不显示任何压缩和解压缩过程的信息。 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| -t | --test | 测试 Bzip2 压缩文件的完整性。 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
| -v | --verbose | 显示详细的压缩和解压缩过程的信息。 |
|
2023-11-09 17:30:33 +08:00
|
|
|
|
| -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 级别的压缩,生成速度最慢,压缩比最高的压缩文件。 |
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
### 7z
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-11-09 17:30:33 +08:00
|
|
|
|
7z(7-Zip)是一款开源的文件压缩和解压缩工具,主要使用 LZMA(Lempel-Ziv-Markov 链算法)和 LZMA2 算法进行压缩。7z 格式以高压缩率和高压缩速度而著称,通常能够提供比 Gzip 和 Bzip2 更高的压缩效果。除了 7z 格式,7-Zip 还支持其他压缩格式,如 ZIP、Gzip、Bzip2、Tar 等。
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 优点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 高压缩率:7z 格式通常能提供非常高的压缩率,从而进一步减小文件大小,节省存储空间和带宽。
|
|
|
|
|
2. 压缩速度:7z 在保证高压缩率的同时,压缩速度相对较快。
|
|
|
|
|
3. 多文件支持:7z 支持压缩多个文件和目录结构,无需额外的归档工具。
|
|
|
|
|
4. 密码保护:7z 支持使用 AES-256 加密算法对压缩文件进行密码保护。
|
|
|
|
|
5. 开源和免费:7-Zip 是一个开源项目,可以免费使用。
|
|
|
|
|
6. 跨平台兼容性:7-Zip 在 Windows、Linux 和 macOS 等操作系统上都有实现,具有良好的跨平台兼容性。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 缺点
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 广泛支持度:尽管 7z 格式具有许多优点,但与 ZIP 和 Gzip 相比,它的支持和普及程度相对较低。
|
|
|
|
|
2. 可能需要额外软件:在某些操作系统(如 macOS 和 Linux)上,可能需要额外安装 7-Zip 或类似工具,以支持 7z 格式。
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 适用场景
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
1. 文件存储:当存储空间有限或需要高压缩率时,7z 可用于压缩文档、日志文件等。
|
|
|
|
|
2. 文件传输:7z 可以将文件压缩成更小的体积,有助于减少传输时间和网络开销。
|
|
|
|
|
3. 软件分发:开发者可以将源代码或二进制文件压缩为 7z 格式,以获得更小的文件体积,便于用户下载和安装。
|
|
|
|
|
4. 数据备份:7z 支持压缩大量文件和目录结构,适用于对数据进行备份和归档。
|
|
|
|
|
|
|
|
|
|
简单总结:7z 是一款开源的文件压缩工具,使用 LZMA 和 LZMA2 算法,提供高压缩率和较快的压缩速度。7z 支持压缩多个文件和目录结构,支持密码保护,具有良好的跨平台
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见命令
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
|
| ------------------------------- | ------------------------------------------------------------ |
|
|
|
|
|
| 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 的分卷文件 |
|
|
|
|
|
|
2023-04-24 11:01:43 +08:00
|
|
|
|
#### 常见选项
|
2023-04-03 16:17:51 +08:00
|
|
|
|
|
|
|
|
|
| 选项 | 全拼 | 功能 |
|
|
|
|
|
| ---- | ----------------------- | ----------------------------------------- |
|
|
|
|
|
| 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 | 创建多卷压缩文件 |
|