档案与文件系统的压缩与打包

Linux系统常见的压缩指令
在Linux的环境中,压缩文件案的扩展名大多是:『.tar, .tar.gz, .tgz, .gz, .Z, .bz2』,为什么会有这样的扩展名呢?不是说 Linux 的扩展名没有什么作用吗? 这是因为 Linux 支持的压缩挃令非常多,且不同的挃令所用的压缩技术并不相同,当然彼此乊间可能就无法互通压缩/解压缩文件案啰。 所以,当你下载到某个压缩文件时,自然就需要知道该档案是由哪种压缩挃令所制作出来的,好用来对照着解压缩啊! 也就是说,虽然 Linux 档案的属性基本上是不文件名没有绝对关系的, 但是为了帮劣我们人类小小的脑袋瓜子,所以适当的扩展名还是必要的! 底下我们就列出几个常见的压缩文件案扩展名吧:

  • *.Z compress 程序压缩的档案
  • *.gz gzip 程序压缩的档案
  • *.bz2 bzip2 程序压缩的档案
  • *.tar tar 程序打包的数据,并没有压缩过
  • *.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
  • *.tar.bz2 tar 程序打包的档案,其中并且经过 bzip2 的压缩

打包指令:tar

1
2
3
tar [-j|-z] [cv] [-f 建立的檔名] filename... <==打包不压缩
tar [-j|-z] [tv] [-f 建立的檔名] <==察看檔名
tar [-j|-z] [xv] [-f 建立的檔名] [-C 目录] <==解压缩

选项与参数:

1
2
3
4
5
6
7
8
9
-c :建立打包档案,可搭配
-v 来察看过程中被打包的档名(filename)
-t :察看打包档案的内容吨有哪些档名,重点在察看『档名』就是了;
-x :解打包戒解压缩的功能,可以搭配 -C (大写) 在特定目录解开 特别留意的是, -c, -t, -x 不可同时出现在一串挃令列中。
-j :透过 bzip2 的支持迚行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持迚行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选顷啰!
-C 目录 :这个选顷用在解压缩,若要在特定目录解压缩,可以使用这个选顷。

其实最简单的使用 tar 就只要记忆底下的方式即可:

1
2
3
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的档案戒目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

unzip

语法:

1
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

参数:

  • -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
  • -f 更新现有的文件。
  • -l 显示压缩文件内所包含的文件。
  • -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
  • -t 检查压缩文件是否正确。
  • -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
  • -v 执行是时显示详细的信息。
  • -z 仅显示压缩文件的备注文字。
  • -a 对文本文件进行必要的字符转换。
  • -b 不要对文本文件进行字符转换。
  • -C 压缩文件中的文件名称区分大小写。
  • -j 不处理压缩文件中原有的目录路径。
  • -L 将压缩文件中的全部文件名改为小写。
  • -M 将输出结果送到more程序处理。
  • -n 解压缩时不要覆盖原有的文件。
  • -o 不必先询问用户,unzip执行后覆盖原有文件。
  • -P<密码> 使用zip的密码选项。
  • -q 执行时不显示任何信息。
  • -s 将文件名中的空白字符转换为底线字符。
  • -V 保留VMS的文件版本信息。
  • -X 解压缩时同时回存文件原来的UID/GID。
  • [.zip文件] 指定.zip压缩文件。
  • [文件] 指定要处理.zip压缩文件中的哪些文件。
  • -d<目录> 指定文件解压缩后所要存储的目录。
  • -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
  • -Z unzip -Z等于执行zipinfo指令。

实例:

1
unzip spring_lecture-1.0-SNAPSHOT.jar -d ./spring_lecture