You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在仅存300G空间的dir1中将600G的test.tar压缩为test.tar.bzip且仅保留压缩文件

可行的解决方案

针对你在dir1目录下的情况(600G的test.tar,剩余300G空间,需要生成test.tar.bz2并仅保留该压缩文件),这里有几个稳妥的方法:

方法1:直接使用bzip2内置替换功能(最简便)

bzip2默认会压缩目标文件,并在压缩完成后自动删除原文件,完美匹配你的需求。执行命令:

cd dir1
bzip2 test.tar

这个命令会将test.tar压缩为test.tar.bz2,压缩完成后立即删除原tar文件。需要注意的是,压缩过程中会同时存在原文件和临时生成的压缩文件,所以需要确保压缩后的文件体积 ≤ 300G。一般来说,普通数据(文档、代码、常规文件)的bzip2压缩率能达到50%甚至更低,600G的tar包压缩后大概率会在300G以内,这个方法完全可行。

方法2:管道压缩+手动删除(更安全)

如果担心压缩过程中出现意外(比如空间不足中断),可以先将压缩结果输出到新文件,确认压缩完成后再删除原文件:

cd dir1
bzip2 -c test.tar > test.tar.bz2 && rm test.tar

-c参数让bzip2将压缩内容输出到标准输出,再重定向到test.tar.bz2。只有当压缩命令成功执行完成后,rm才会删除原文件,避免中途出错导致原文件丢失。

方法3:带进度显示的压缩(可选,方便监控)

如果你想实时看到压缩进度和速度,可以借助pv工具(大部分Linux发行版可通过包管理器安装):

cd dir1
pv test.tar | bzip2 > test.tar.bz2 && rm test.tar

pv会显示当前处理的字节数、速度和剩余时间,让你清楚压缩的进展。

备选方案:临时使用外部存储空间(极端情况)

如果你的tar包内容特殊,压缩后体积超过300G,那可以先利用外部存储(比如其他挂载的磁盘)完成压缩,再移回dir1:

# 假设/mnt/extra是有足够空间的外部挂载目录
cd dir1
bzip2 -c test.tar > /mnt/extra/test.tar.bz2 && rm test.tar && mv /mnt/extra/test.tar.bz2 .

这个方法能避开dir1的空间限制,适合压缩率极低的特殊场景。

内容的提问来源于stack exchange,提问作者Jcob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:34:27