一次性分清zipgzipbzip2tar命令

Posted C+G

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次性分清zipgzipbzip2tar命令相关的知识,希望对你有一定的参考价值。

文章目录

归类

我们把这几个命令归类为几种能力,一个是解压缩能力一个是打拆包能力。

我这里打包的意思是不使用压缩算法对文件进行压缩,只是简单的把多个文件归档为一个文件。而拆包则是它的逆过程。

压缩则是大家熟知的将文件以某种压缩算法对内容进行缩减,解压则是它的逆过程。

zip与unzip命令

zip命令用于将文件压缩为 .zip 格式的文件,之所以将他定义为可打包拆包是因为他可以支持多文件的压缩,而其他的 gzipbzip2 只能对单文件进行压缩,也就是说如果要压缩多文件,需要先经过打包过程变成单文件再压缩,.zip 格式的文件默认将打包和压缩放在一起了,而 zip 命令也不支持单独的打包再压缩。

tar命令

不加入 -z-j 参数,加入 -c 表示对文件或目录进行归档。

所以tar命令是支持单独的归档功能的,具体的压缩算法可以通过参数指定可以是 gzip 也可以是 bzip2 或其他。

使用方式

zip

命令格式

zip [-r] [压缩后文件名] [文件或目录]

命令描述

  • zip命令用来对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。

选项

  • -r: 递归处理,将指定目录下的所有文件和子目录一并处理,用于压缩目录
  • -x:压缩时排除符合条件的文件
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ zip a.zip a.txt #压缩文件
  adding: a.txt (stored 0%)
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  a.txt  a.zip
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch abc/tmp.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ zip -r abc.zip abc/ -x abc/tmp.txt #压缩文件夹并忽略某些文件
  adding: abc/ (stored 0%)

unzip

命令格式

unzip [选项] 文件名

命令描述

unzip命令用于解压缩由zip命令压缩的“.zip”压缩包。

选项

  • -n:解压缩时不要覆盖原有的文件;
  • -o:不必先询问用户,unzip执行后覆盖原有的文件;
  • -d <目录>:指定文件解压缩后所要存储的目录(不指定目录,默认解压到当前目录)
  • 可配合tar命令对 tar.gz 文件进行解压缩和拆包 tar -zxvf 文件名

示例

ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ unzip abc.zip -d ~ #解压到指定目录
Archive:  abc.zip
   creating: /home/ljb/abc/

gzip

命令格式

gzip [文件]

命令描述

gzip 压缩过后,其名称后面会多处 .gz 扩展名。

注意:gzip 只能压缩文件,不能压缩文件夹,压缩后原文件会被删除。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip压缩常常用在http的网络请求中。

示例

ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch b.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gzip b.txt #压缩后生产b.txt.gz,原本的文件不见了
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt.gz

gunzip

命令格式

gunzip [文件]

命令描述

gunzip命令用来解压缩 xxx.gz 文件。

示例

ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gunzip b.txt.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls #解压缩成功,得到b.txt文件
abc  abc.zip  a.txt  a.zip  b.txt

bzip2

命令格式

bzip2 [选项] [文件]

命令描述

  • bzip2命令用于压缩 .bz2 格式的压缩包,是gzip的升级版本,可以保留原文件。
  • bzip2的压缩比比较高,可用于压缩较大文件。
  • bzip2也是只对文件进行压缩,如果相对目录进行压缩的话,可以用其他命令打包成一个文件(如tar)。

选项

-k(keep):保留原文件(不删除原文件)

示例

# bzip2 压缩文件
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ touch c.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ bzip2 -k c.txt
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt  c.txt  c.txt.bz2

# 配合使用tar 命令,完成打包压缩(后面会讲tar命令的使用)
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir music
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -jcvf music.tar.bz2 music/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
abc  abc.zip  a.txt  a.zip  b.txt  c.txt  c.txt.bz2  music  music.tar.bz2

bunzip2

命令格式

bunzip2 [选项] [文件]

命令描述

  • 解压缩 .bz2 格式的压缩文件;
  • gunzip 的升级版,可以使用-k保留原文件;
  • 可以配合使用tar命令,完成解压缩解包: tar -jxvf 文件名

选项

-k(keep):保留原文件(不删除原文件)

示例

#删除只剩下c.txt.bz2
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf !(c.txt.bz2)
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
c.txt.bz2
#解压bz2文件
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ bunzip2 c.txt.bz2
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
c.txt

tar

命令格式

tar [选项] [压缩后文件名] [目录]

命令描述

打包目录,将目录打包成一个文件,同时可以压缩,可以自由选择压缩算法。

使用tar命令时,如果想要打包并压缩一个目录,可以有两种方法进行:

  1. 先利用 tar 命令打包目录为一个文件,然后使用 gzipbzip2 压缩。
  2. 直接利用 tar 命令打包并压缩 (简单方便,推荐使用)。

解压时也有两种方式:

  1. 先使用 gunzipbunzip2 解压缩,再使用 tar 解包.
  2. 直接利用tar命令解压缩并解包 (简单方便,推荐使用)

选项

  • -c:打包
  • -x:拆包
  • -v:显示详细信息
  • -f:指定文件名
  • -z:表示使用 gzip 进行解压缩,压缩后的拓展名为 .tar.gz,这个拓展名在下载Linux相关安装包时很常见。
  • -j:表示使用 bzip2 进行解压缩,压缩后拓展名为 .tar.bz2

一般来说,-vf 参数肯定会带上的,根据打包/拆包选择-c或-x,根据使用的压缩算法选择 -z 或 -j。

示例

# 1、2为打包压缩的两种方法
# 1. 使用 tar -cvf 打包,然后使用gzip压缩
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ mkdir movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$# tar -cvf movie.tar movie/
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gzip movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie.tar.gz

# 2. 使用 tar -zcvf 打包并压缩
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zcvf movie2.tar.gz movie
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar.gz

# 3、4为解压缩并解包的两种方法

# 3. 先使用gunzip解压缩,然后 tar -xvf解包
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz  movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ gunzip movie.tar.gz
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie2.tar.gz  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -xvf movie.tar
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar

# 4. 使用tar -zxvf 解压缩并解包
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ rm -rf movie
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ tar -zxvf movie2.tar.gz
movie/
ljb@Wangzhe0cnmdUTF-8:/mnt/d/linux_shell$ ls
movie  movie2.tar.gz  movie.tar

以上是关于一次性分清zipgzipbzip2tar命令的主要内容,如果未能解决你的问题,请参考以下文章

C语言部分清屏如何实现

一次性分清DOMContentLoadedwindow.onloadstyle

一次性分清nth-child(n)和nth-of-type(n)

把本地代码上传到gitHub及其中的问题

Linux命令之cp命令

sed