Linux中压缩文件或目录的常用方法包括:一、tar -czvf生成.tar.gz;二、先tar再gzip分步压缩;三、gzip单独压缩单文件;四、zip跨平台压缩;五、bzip2高压缩率压缩。

如果您需要在Linux系统中将文件或目录压缩为归档包,常见需求包括生成.tar.gz格式以兼顾兼容性与压缩效率。以下是实现该目标的多种方法:
一、使用tar配合gzip创建.tar.gz包
该方法将打包与压缩一步完成,适用于目录或多个文件,生成的.tar.gz文件可跨平台传输且被广泛支持。
1、打开终端,进入待压缩文件所在目录。
2、执行命令:tar -czvf archive_name.tar.gz target_directory_or_files。
3、其中-c表示创建归档,-z调用gzip压缩,-v显示过程,-f指定输出文件名。
4、若需排除特定文件,可在命令末尾添加--exclude='pattern',例如--exclude='*.log'。
二、先tar打包再gzip压缩
此方式分离打包与压缩步骤,便于对已存在.tar文件追加内容或校验后再压缩。
1、执行命令:tar -cvf archive_name.tar target_directory_or_files,生成未压缩的.tar文件。
2、对生成的.tar文件运行:gzip archive_name.tar。
3、结果得到archive_name.tar.gz,原.tar文件被自动删除。
4、如需保留原.tar文件,改用:gzip -k archive_name.tar。
三、使用gzip单独压缩单个文件
gzip专为单文件设计,不支持目录,压缩后原文件默认被替换为.gz版本,适合日志、配置等纯文本文件。
1、确认目标为普通文件(非目录),例如config.txt。
2、执行命令:gzip config.txt。
3、生成config.txt.gz,原config.txt消失。
4、若需保留源文件,添加-k参数:gzip -k config.txt。
四、使用zip命令进行跨平台压缩
zip格式在Windows、macOS和Linux间通用,支持目录递归压缩及密码保护,适合需多系统共享的场景。
1、安装zip(如未预装):sudo apt install zip(Debian/Ubuntu)或sudo yum install zip(RHEL/CentOS)。
2、压缩目录:zip -r archive_name.zip target_directory。
3、压缩当前目录下所有.txt文件:zip archive_name.zip *.txt。
4、解压时使用unzip命令,例如:unzip archive_name.zip -d /path/to/extract。
五、使用bzip2获得更高压缩率
bzip2比gzip提供约30%更高的压缩率,适合长期存档或空间敏感场景,但压缩与解压速度较慢。
1、压缩单个文件:bzip2 -k large_file.sql,-k保留原文件。
2、打包并压缩目录:tar -cjvf archive_name.tar.bz2 target_directory。
3、解压.tar.bz2包:tar -xjvf archive_name.tar.bz2。
4、单独解压.bz2文件:bunzip2 -k archive_name.tar.bz2。










