Linux 环境如何压缩和解压缩文件​

Linux 环境如何压缩和解压缩文件​

Linux 环境如何压缩和解压缩文件 ​打包和压缩的区别 ​打包和压缩是不同的概念,打包是将多个文件/文件夹合并为一个文件,而压缩则是通过压缩算法来减小文件体积。要注意的是,打包并不意味着减小体积,压缩也不意味着要把文件合并到一起。尽管大部分时候我们习惯了“打包并压缩”,有时候并不需要对它们进行区分,但了解它们的区别有助于更好地认知 Linux 系统中的相关命令。

打包和解包(tar) ​只打包不压缩 ​使用tar命令将多个文件/文件夹打包为一个文件:

shtar -cvf archive.tar file1 file2 file3其中archive.tar打包后的文件,file1, file2 和 file3是要打包的文件/文件夹。

针对每一个被打包的文件,会有输出:

sha file1

a file2

a file3打包并压缩 ​tar命令也集成了压缩功能,可以使用 gzip 或 bzip2 压缩算法,对应的参数分别是-z和-j:

sh# 使用gzip压缩,文件名后面加上 .gz

tar -zcvf archive.tar.gz file1 file2 file3

# 使用gzip压缩,文件名后缀使用 .tgz

tar -zcvf archive.tgz file1 file2 file3

# 使用bzip2压缩,文件名后面加上 .bz2

tar -jcvf archive.tar.bz2 file1 file2 file3

# 使用bzip2压缩,文件名后缀使用 .tbz2

tar -jcvf archive.tbz2 file1 file2 file3解包 ​shtar -xvf archive.tar如果需要解包到指定目录,则加上-C参数:

shtar -xvf archive.tar -C /path/to/destination/directory如果有压缩的话,加上对应的-z或者-j参数即可:

sh# 解压缩gzip格式的压缩包

tar -zxvf archive.tar.gz

# 解压缩bzip2格式的压缩包

tar -jxvf archive.tar.bz2压缩和解压缩文件 ​gzip压缩 ​gzip命令用来压缩文件,值得注意的是,它会覆盖原文件,即使用gzip命令压缩后,原文件会消失:

sh# file会消失,新产生一个file.gz

gzip file如果将gzip直接应用到目录上没有任何效果,因为gzip只能压缩文件,而不能压缩目录。但可以使用-r参数来递归压缩目录中的所有文件:

sh# dirname目录中的所有文件都会被压缩,每个文件生成一个对应的.gz文件,原文件消失

gzip dirnamegzip解压缩 ​解压单个文件,使用-d参数:

sh# 将file.gz文件解压缩,新产生一个file

gzip -d file.gz增加-r参数可针对目录进行递归解压缩,和压缩时的递归类似,也是将目录中的所有文件都解压缩:

sh# 将dirname及子目录下的所有gzip压缩文件全部解压缩

gzip -dr dirnamezip压缩 ​zip可以同时完成打包和压缩2个动作。

打包压缩:

shzip archive.zip file1 file2 file3输出:

shadding: file1 (stored 0%)

adding: file2 (stored 0%)

adding: file3 (stored 0%)如果有目录需要一起打包压缩,需要加上-r参数,此外可以使用-q参数关闭输出:

shzip -qr archive.zip dirnamezip解压缩 ​当前目录下直接解压缩:

shunzip archive.zip如需要解压到指定目录,可使用-d参数,此外-o参数可以不询问直接覆盖已有文件:

shunzip -d /path/to/destination/directory -o archive.zip速查总结 ​后缀打包/压缩解包/解压缩.tartar -cvf archive.tar file1 file2tar -xvf archive.tar -C /dest/path.tar.gz/.tgztar -zcvf archive.tar file1 file2tar -zxvf archive.tar -C /dest/path.tar.bz2/.tbz2tar -jcvf archive.tar file1 file2tar -jxvf archive.tar -C /dest/path.gzgzip filegzip -d file.gz.zipzip -r archive.zip file1 file2unzip -d /dest/path -o archive.zip

更多创意作品