如何解压缩大文件
本文最后更新于 2025年3月27日 中午
如何解压大文件
1. 常见解压方式及优化
使用 7z
解压
1 |
|
-mmt=48
:使用 48 线程(根据 CPU 核心数调整)。-ooutput_dir
:指定输出目录。
续解压(跳过已解压文件) 7z x file.zip -ooutput_dir -aos -mmt=48
使用 unzip
1 |
|
-d output_dir
:解压到指定目录。
继续上次的解压 1
unzip -n file.zip -d output_dir
-d output_dir
:解压到指定目录。 -
-n
:避免覆盖已有文件,加快解压。 - #### 使用
tar
(适用于 .tar.gz
或
.tar.bz2
) 1
tar -xvf file.tar.gz -C output_dir
-x
:解压,-v
:显示进度,-f
:指定文件。
使用 pigz
(多线程
gzip)
如果 .zip
里是 .gz
文件,换
pigz
可加速: 1
pigz -dc file.gz | tar xvf -
2. 检查解压进度
方法 1:使用 pv
监控进度
1 |
|
方法 2:使用
iotop
或 dstat
监控 I/O
1 |
|
3. 提高解压速度的方法
(1)增加解压并行度
7z
默认支持多线程,使用-mmt=N
来增加线程数。tar
解压.tar.gz
时可以用pigz
提高速度。
(2)调整 I/O 优先级
1 |
|
-c 2
:后台模式,-n 0
最高优先级。
(3)清理缓存,加速 I/O
1 |
|
4. 如何断点续解
如果解压中断,可以使用: 1
7z x file.zip -ooutput_dir -aos
-aos
:跳过已解压的文件,避免重复解压。
或者使用 rsync
进行增量同步: 1
rsync -av --ignore-existing source/ destination/
5. 如何检查解压是否正确
使用 diff
或 md5sum
对比原始文件
1 |
|
使用 7z
校验完整性
1 |
|
t
选项可检测.zip
文件是否损坏。
6. 解决卡顿问题
如果 iotop
显示磁盘写入很低,可能是 I/O
调度问题: 1
sudo renice -n -5 -p $(pgrep unzip)
unzip
进程的优先级。
如果 CPU 占用高,可能是
单线程瓶颈,可以尝试: 1
unzip -n file.zip -d output_dir &
&
让解压在后台运行,减少主线程负担。
结论
- 使用
7z
和unzip -n
避免重复解压。 - 使用
-mmt=48
增加线程数 提高速度。 - 监控 I/O (
iotop
) 识别瓶颈。 - 使用
7z t
或md5sum
校验完整性。 - 断点续解:使用
7z -aos
或rsync
。
通过这些方法,可以更快、更安全地解压大文件。