文章
centos zip 相关命令
1. 准备工作:安装 zip 工具
如果系统提示 -bash: zip: command not found,说明尚未安装,可以运行以下命令安装
sudo yum install zip -y2. 压缩当前文件夹
如果想将当前所在目录的所有内容压缩,可以使用点号 . 或 * 通配符来表示当前目录
zip -r 你的文件名.zip ./*例如:将当前目录所有文件压缩为 myarchive.zip
zip -r myarchive.zip ./*3. 压缩指定的文件夹
这是最常见的需求,只需在命令中指定要压缩的文件夹路径即可
zip -r 你的文件名.zip /path/to/指定文件夹例如:将 /home/user/documents 目录压缩为 documents.zip
zip -r documents.zip /home/user/documents例如:压缩当前目录下名为 mydir 的文件夹
zip -r mydir.zip mydir/4. 常用附加选项
- 排除特定文件 (
-x):在压缩时不想包含某些文件或目录,可以使用-x参数
# 压缩当前目录,但排除所有 .log 文件和 temp 目录
zip -r project.zip ./ -x "*.log" -x "*/temp/*"设置压缩级别 (-#):zip 支持从 0(不压缩)到 9(最大压缩)的压缩级别,默认为
# 使用最高压缩级别
zip -9 -r archive.zip myfolder/静默压缩:如果不想看到压缩过程的输出,可以加上 -q 选项。
5. 补充说明
-r参数的作用:压缩文件夹时必须使用-r选项,它代表递归(recursive),能将目录及其下所有子目录和文件都包含进压缩包。如果没有-r,zip只会创建一个包含目录名本身的空压缩包。- 路径问题:当指定的文件夹路径包含空格时,需要用引号将整个路径括起来。
总结一下,最常用的命令格式就是:
zip -r 你想要的名字.zip 要压缩的文件夹分卷压缩
核心命令:使用 zip -s 进行分卷压缩
这个命令会直接将目标文件夹压缩并分割成多个指定大小的分卷文件
zip -r -s 1g <输出文件名>.zip <要压缩的文件夹>-r:必需参数,代表递归,用于压缩文件夹及其所有子内容。-s 1g:核心参数,指定每个分卷的大小为1GB。你也可以使用m(兆字节) 或k(千字节) 等单位。<输出文件名>.zip:你指定的主压缩包名称。<要压缩的文件夹>:你想要压缩的目录
示例:将当前目录下的 my_folder 文件夹压缩并分割成1GB大小的分卷,主文件名为 archive.zip。
zip -r -s 1g archive.zip my_folder/archive.z01(第一个分卷)archive.z02(第二个分卷)- ...
archive.zip(最后一个分卷)
如何解压分卷文件
解压时非常简单,只需确保所有分卷文件(.z01, .z02, ..., .zip)都在同一个目录下,然后直接解压最后一个 .zip 文件即可
unzip archive.zipunzip 命令会自动识别并合并同目录下的其他分卷,完成解压。
其他可选方法
除了 zip -s,还有另外两种方法可以实现类似效果:
# 1. 先正常压缩
zip -r large_archive.zip my_folder/
# 2. 再用 split 分割成 1GB 的文件
split -b 1G large_archive.zip "split_part_"注意:这种方法生成的文件(如 split_part_aa)不是标准的zip分卷,解压前需要先用 cat 命令合并
cat split_part_* > combined.zip
unzip combined.zip2.使用 zipsplit 命令zipsplit 是专门用来分割已有zip文件的工具
zipsplit -n 1g existing_archive.zip注意:zipsplit 不支持大于2GB的文件