Linux文件压缩与解压便捷操作指南
在Linux中,归档是将多个文件/目录合并成一个文件(不减小体积),压缩是通过算法减少文件体积。通常我们会将两者结合使用(如tar+gzip),实现“打包+压缩”的完整需求。
gzip file.txt(生成file.txt.gz,原文件自动删除);若需保留原文件,加-k参数:gzip -k file.txt。gunzip file.txt.gz(或gzip -d file.txt.gz)。bzip2 file.txt(生成file.txt.bz2,原文件自动删除);保留原文件加-k:bzip2 -k file.txt。bunzip2 file.txt.bz2(或bzip2 -d file.txt.bz2)。xz file.txt(生成file.txt.xz,原文件自动删除);保留原文件加-k:xz -k file.txt。unxz file.txt.xz(或xz -d file.txt.xz)。zip -r archive.zip file1 dir/(-r表示递归压缩目录);若需加密,加-e:zip -re secret.zip file.txt。unzip archive.zip(默认当前目录);指定目录加-d:unzip archive.zip -d /path/to/dir。tar本身仅用于归档(将多个文件/目录打包成.tar文件),但可通过管道或参数结合压缩工具(gzip/bzip2/xz)实现“打包+压缩”,是Linux中最常用的组合方式。
tar -cvf archive.tar file1 dir/(-c创建归档,-v显示过程,-f指定文件名)。tar -tvf archive.tar(不解压查看包内文件)。tar -xvf archive.tar(-x解包,-C /path/to/dir可指定解压目录)。.tar.gz,最常用):tar -czvf archive.tar.gz file1 dir/(-z调用gzip压缩)。.tar.bz2,平衡压缩率):tar -cjvf archive.tar.bz2 file1 dir/(-j调用bzip2压缩)。.tar.xz,最高压缩率):tar -cJvf archive.tar.xz file1 dir/(-J调用xz压缩)。tar -xzvf archive.tar.gz(解压.tar.gz)、tar -xjvf archive.tar.bz2(解压.tar.bz2)、tar -xJvf archive.tar.xz(解压.tar.xz)。--exclude参数,如tar -czvf archive.tar.gz --exclude='*.log' dir/(排除所有.log文件)。tar -xzvf archive.tar.gz -C /data(将压缩包解压到/data目录)。tar -xvf archive.tar.gz path/to/file(仅解压archive.tar.gz中的path/to/file)。tar -tvf archive.tar.gz(适用于确认压缩包内文件是否符合预期)。gzip(.gz),速度快,兼容性好。xz(.xz)或bzip2(.bz2),适合长期存档(如日志、备份)。zip(.zip),Windows与Linux均能直接打开。