Linux压缩命令(总结)


本文摘自PHP中文网,作者藏色散人,侵删。

Linux压缩命令

Linux常见的压缩格式有.zip、.gz、.bz2、.tar、.tar.gz、.tar.bz2;常用的压缩命令有zip、tar。这里列举了各压缩命令的使用示例。更多的用法请使用命令 --help查阅。

推荐:《Linux教程

zip

格式:

1

2

zip [options] 目标压缩包名称 待压缩源文件

unzip [-Z] [options] 待压缩源文件 [list] [-x xlist] [-d exdir]

常用命令:

1

2

3

4

5

6

7

8

# 压缩文件

zip myfile.zip myfile

# 压缩文件夹(包含子目录)

zip -r mydir.zip mydir

# 压缩当前目录所有文件

zip mydir.zip *

# 解压文件

unzip mydir.zip

zip更多参数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

-v 显示操作详细信息

-d 从压缩包里删除文件

-m 将文件剪切到压缩包里,源文件将被删除

-r 递归压缩

-x 排除文件

-c 加一行备注

-z 加备注

-T 测试压缩包完整性

-e 加密

-q 安静模式

-1, --fast 更快的压缩速度

-9, --best 更好的压缩率

--help 查看帮助

-h2 查看更多帮助

unzip更多参数:

1

2

3

4

5

6

7

8

9

-v 显示操作详细信息

-l 查看压缩包内容

-d 解压到指定文件夹

-x 排除压缩包内文件

-t 测试压缩包文件内容

-z 查看备注

-o 覆盖文件无需提示

-q 安静模式

--help 查看帮助

示例:

1

2

$ ls

t.md  t.php t.php.zip

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

# 创建压缩包

$ zip -v myfile.zip t.*

  adding: t.md  (in=8121) (out=1051) (deflated 87%)

  adding: t.php (in=740) (out=319) (deflated 57%)

  adding: t.php.zip     (in=1666) (out=1666) (stored 0%)

total bytes=10527, compressed=3036 -> 71% savings

# 测试压缩包完整性

$ zip -T myfile.zip

test of myfile.zip OK

# 测试压缩包文件内容

$ unzip -t myfile.zip

Archive:  myfile.zip

    testing: t.md                     OK

    testing: t.php                    OK

    testing: t.php.zip                OK

No errors detected in compressed data of myfile.zip.

# 查看压缩包里内容

$ unzip -l myfile.zip

Archive:  myfile.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

     8121  06-08-2016 17:03   t.md

      740  06-08-2016 17:02   t.php

     1666  07-30-2016 17:38   t.php.zip

---------                     -------

    10527                     3 files

# 从压缩包里删除文件t.php.zip  

$ zip -d myfile.zip t.php.zip

deleting: t.php.zip

# 从压缩包里删除文件t.php

$ zip -d myfile.zip t.php

deleting: t.php

# 添加文件到压缩包里

$ zip -u myfile.zip t.php

  adding: t.php (deflated 57%)

# 给压缩包添加注释 

$ zip -z myfile.zip

enter new zip file comment (end with .):

test

.

# 查看压缩包注释

$ unzip -z myfile.zip

Archive:  myfile.zip

test

# 解压到指定文件夹

$ unzip myfile.zip -d my

Archive:  myfile.zip

test .

  inflating: my/t.md                

  inflating: my/t.php

# 排除文件不解压

$ unzip myfile.zip  -x t.php -d my

Archive:  myfile.zip

test .

  inflating: my/t.md

gz

格式:

1

2

gzip [options] 待压缩源文件

gunzip [options]  待解压文件

不用写最终的压缩文件名,会自动在后面加.gz后缀,同时删除源文件。

常用命令:

1

2

3

4

5

6

7

8

9

10

11

12

# 压缩1.log,同时会自动删除源文件

gzip 1.log

# 解压1.log.gz,同时会自动删除压缩包

gzip -d 1.log.gz

# 压缩1.log,保留源文件

gzip -k 1.log

# 解压1.log.gz,保留压缩包

gzip -dk 1.log.gz

# 查看压缩包信息

gzip -l 1.log.gz

# 递归的对目录里的每个文件单独压缩

gzip -r mydir

注意:gunzip与gzip -d等效,都可以解压gz文件。

更多参数:

1

2

3

-c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件

-1, --fast 更快的压缩速度

-9, --best 更好的压缩率

示例:

1

2

# 压缩1.log为1.log.gz,保留源文件

gzip -c 1.log > 1.log.gz

bz2

格式:

1

2

bzip2 [options] 待压缩源文件

bunzip2 [options]  待解压文件

常用命令:

1

2

3

4

5

6

7

8

# 压缩1.log

bzip2 1.log

bzip2 -k 1.log

# 解压1.log.bz2

bzip2 -d 1.log.bz2

bzip2 -dk 1.log.bz2

bunzip2 1.log.bz2

bunzip2 -k 1.log.bz2

更多参数:

1

2

3

-c, --stdout 将压缩后的内容在标准输出显示出来,保留原文件

-1, --fast 更快的压缩速度

-9, --best 更好的压缩率

tar

格式:

1

tar [options] 目标压缩包名称 待压缩源文件

常用命令:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

# 打包后,以gzip 压缩

tar zcvf test.tar.gz /test  #压缩/test为test.tar.gz

# 解压test.tar.gz

tar zxvf test.tar.gz

# 打包后,以bzip2 压缩

tar jcvf test.tar.bz2 /test  #压缩/test为test.tar.bz2

# 解压test.tar.bz2

tar jxvf test.tar.bz2

# 仅打包,不压缩

tar cvf test.tar /test  #压缩/test为test.tar

# 解压test.tar

tar xvf test.tar

# 查看压缩包内容列表

tar tvf test.tar.gz

# 解压到指定文件夹(目标文件夹必须存在)

$ tar -zxvf all.tar.gz -C my/

# 压缩时排除某些目录

$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat

$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat

常用参数说明:

1

2

3

4

5

6

7

-c, --create: 建立压缩档案

-x, --extract, --get:解压

-t, --list:查看内容

-r, --append:向压缩归档文件末尾追加文件

-u, --update:更新原压缩包中的文件

-d, --diff, --compare 将压缩包里的文件与文件系统进行对比

    --delete 从压缩包里删除

这几个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的:

1

2

3

4

5

6

-z, --gzip, --gunzip, --ungzip:有gzip属性的

-j, --bzip2:有bz2属性的

-Z, --compress, --uncompress:有compress属性的

-v, --verbose:显示所有过程

-O, --to-stdout:将文件解开到标准输出

-C, --directory=DIR:解压到指定文件夹

最后的参数-f是必须的:

1

-f, --file=ARCHIVE: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

查看命令帮助:

1

2

3

tar --help

tar -?

tar --usage

更多示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

# 比较压缩包里文件与源文件变动

$ tar --diff -vf 1.log.tar 1.log

1.log

1.log: Mod time differs

1.log: Size differs

# 删除压缩包里的1.log

$ tar --delete -vf 1.log.tar 1.log

# 向压缩归档文件里追加文件

$ tar rvf 1.log.tar 1.log 2.log

1.log

2.log

# 向压缩归档文件里更新文件

$ tar uvf 1.log.tar 1.log 2.log

说明:不能向tar.gz和tar.bz2里追加或者更新文件:

1

2

3

$ tar zrvf all.tar.gz 3.log

tar: Cannot update compressed archives

Try 'tar --help' or 'tar --usage' for more information.

以上就是Linux压缩命令(总结)的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

如何快速排查无法打开 ecs 实例上运行的网站

Linux环境下,哪些操作有可能引起线程切换

Linux有哪些常用的版本?

Linux云计算运维学什么?

Linux是什么

Linux系统引导流程

如何使用第三方优质镜像产品增强用户使用云服务器的体验

如何查看Linux服务器的内存使用情况

详解Linux利用read命令获取变量中的值的操作方法

Linux的mysql配置文件在哪

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...