在Linux中,解压、压缩、打包是日常会很频繁用到的几个操作,但由于参数好多,没有记忆点,加上压缩文件的类型好多,假若不常常使用,会容易忘掉。
所以这篇笔记就是整理常见的这些解压、压缩、打包的命令。
在即将学习之前,须要明晰的两个概念,打包和压缩不是一回事:
为何要分辨这两个概念呢?这缘于Linux中好多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),之后再用压缩程序进行压缩(gzipbzip2命令)。
tar
压缩/打包
仅打包,不压缩。
tar -cvf foo.tar foo
foo.tar这个文件名是自定义的,只是习惯上我们使用.tar作为包文件。
打包,且压缩。-z参数表示以.tar.gz或则.tgz后缀名代表gzip压缩过的tar包。
tar -zcvf foo.tar.gz foo
打包linux之家,且压缩。-j参数表示以.tar.bz2后缀名作为tar包名。
tar -jcvf foo.tar.gz foo
解压
在当前目录下直接解压:
tar -zxvf foo.tar.gz
注意,假若这个目录下有同名的文件,不会寻问,直接覆盖。
解压至指定文件夹:
tar -zxvf foo.tar.gz -C
gzip
gzip命令拿来压缩文件。文件经它压缩之后,其名称前面会多处.gz扩充名(不带.tar)。
压缩
将当前目录的每位文件压缩成.gz文件:
gzip *
递归压缩指定目录的所有文件及子目录:
gzip -r
解压
解压当前目录下的foo.gz文件:
gzip -d foo.gz解压完成以后,foo.gz就弄成了foo文件。
递归解压目录:
gzip -dr
解压完成以后linux tar打包命令,目录下的所有.gz文件就会弄成正常文件。
zip
zip可以拿来解压缩文件linux tar打包命令,或则对文件进行打包操作。文件经它压缩后会另外形成具有.zip扩充名的压缩文件。
压缩
将当前目录下的指定目录,压缩为.zip文件:
zip -q -r foo.zip
将指定目录下的所有文件及其文件夹,压缩为.zip文件:
zip -q -r foo.zip /注意,形成的压缩文件在执行命令的那种目录下。
解压
unzip命令用于解压缩由zip命令压缩的.zip压缩包。
查看压缩包内容:
unzip -v foo.zip将压缩文件在指定目录下解压缩,假如已有相同的文件存在,要求unzip命令不覆盖先前的文件。
unzip -n foo.zip -d /将压缩文件在当前目下解压,假如已有相同的文件,不寻问,直接覆盖。
unzip -o foo.zip
总结
Linux下的压缩解压虽然并不复杂,只是不常用的情况下,很容器忘掉。
假如你不晓得在哪些场景下linux系统下载,该使用哪些命令,可以参照: