压缩、解压缩及归档工具

压缩、解压缩及归档工具

一、杂项知识整理

1、find -iname 忽略大小写;

    -inum 查找指定inode号的文件;

 find 在有条件判断的时候,如果不加括号,最后的命令会被当成以为第二个条件之后的:例

[root@localhost shelltest]# find / -name "*.conf" -o -iname "*.sh" -ls | wc -l
456
[root@localhost shelltest]# find / \( -name "*.conf" -o -iname "*.sh" \) -ls | wc -l
1056

2、API应用程序开发接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。POSIX可移植操作系统几口标准;ABI应用程序二进制接口:应用程序和操作系统之间,一个应用和他的库之间或者应用的组成部分之间的低接口。

 API接口是用作开发人员和应用程序之间,ABI用于操作系统和应用程序之间。(通俗理解)

3、du 列出指定文件或目录及内部文件的大小

    -h human readable

    -s 仅显示给定的文件

[root@localhost shelltest]# du -h /etc/
12K/etc/pki/rpm-gpg
12K/etc/pki/tls/certs
24K/etc/pki/tls/misc
...
[root@localhost shelltest]# du -sh /etc/
24M/etc/

二、命令详解及事例

1、compress命令,扩展名为.Z

    -d 解压缩,相当于uncompress

    -c 结果输出至标准输出,不删除原文件

    -v 显示详情

 uncompress解压缩

    zcat file.Z >file 直接查看压缩文件

2、gzip;扩展名为.gz,zcat查看压缩文件

    -d 解压缩,相当于gunzip

    -c 将压缩或者解压缩的结果输出至标准输出

    -# 1-9 指定压缩比,值越大压缩比越大

[root@localhost tmp]# gzip functions 
[root@localhost tmp]# ls
functions.gz  mysh12.sh  mysh15.sh  mysh18.sh  mysh20.sh  mysh3.sh  mysh6.sh 
[root@localhost tmp]# gunzip functions.gz 
[root@localhost tmp]# ls
functions  mysh12.sh  mysh15.sh  mysh18.sh  mysh20.sh  mysh3.sh  mysh6.sh

3、bzip;扩展名为.bz2,bzcat查看压缩文件

    -k 保留原文件keep

    -d 解压缩,相当于bunzip2

    -# 指定压缩比,默认是6

4、xz;解压缩为unxz,xzcat查看压缩文件

    -k 保留原文件

    -d 解压缩

    -# 指定压缩比,默认为6

[root@localhost tmp]# xz functions 
[root@localhost tmp]# ls
functions.xz  mysh12.sh  mysh15.sh  mysh18.sh  mysh20.sh  mysh3.sh  mysh6.sh 
[root@localhost tmp]# unxz functions.xz 
[root@localhost tmp]# ls
functions  mysh12.sh  mysh15.sh  mysh18.sh  mysh20.sh  mysh3.sh  mysh6.sh 
[root@localhost tmp]# xz -k functions 
[root@localhost tmp]# ls
functions     mysh11.sh  mysh14.sh  mysh17.sh  mysh1.sh   mysh2.sh 
functions.xz  mysh12.sh  mysh15.sh  mysh18.sh  mysh20.sh  mysh3.sh  mysh6.sh

以上皆不能压缩目录

5、zip打包压缩 unzip解包解压缩;扩展名.zip

6、tar归档

    -c -f 创建归档,不删除原文件

    -xf 展开归档。不删除原文件

    -tf 查看归档文件中的文件列表

归档后通常需要压缩,结合以上的压缩工具,就能实现压缩多个文件:

    归档并压缩: -z : gzip 

        -j : bzip2

        -J : xz

    -C(大写)指定目录解压缩

[root@localhost tmp]# tar -zcf ./functions.tar.gz functions
[root@localhost tmp]# ls
functions  functions.tar.gz  lib64  log  shelltest  test
[root@localhost tmp]# tar -xf  ./functions.tar.gz -C /testdir/
[root@localhost tmp]# ls
functions  functions.tar.gz  lib64  log  shelltest  test
[root@localhost tmp]# cd /testdir/
[root@localhost testdir]# ls
a   aaa       data       lost+found  passwd.bak  shelltest   test 
aa  copytest  functions  passwd  string.txt  user  userinfo

    解压缩都用-xf -C,压缩分别为jcf,Jcf和zcf(gzip)

[root@localhost tmp]# tar -jcf functions.tar.bz2 functions
[root@localhost tmp]# ls
functions  functions.tar.bz2  functions.tar.gz  lib64  log  shelltest  test
[root@localhost tmp]# tar -Jcf functions.tar.xz functions
[root@localhost tmp]# ls
functions  functions.tar.bz2  functions.tar.gz  functions.tar.xz  lib64  log  shelltest  test
[root@localhost tmp]# tar -xf functions.tar.xz  -C /testdir/

7、cpio:通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以.cpio或.tar结尾的文件。

    cpio [] > 文件或设备名

    cpio [] < 文件或设备名

    -o 将文件拷贝打包成文件或者将文件输出到设备上

    -i 解包,将打包文件解压或者将设备上的备份还原到系统

    -t 预览,查看文件内容或者输出到设备上的文件内容

    -v 显示打包过程中的文件名称

    -d 解包生成目录,在cpio还原时自动的建立目录

    -c 一种较新的存储方式

注意:(1)cpio恢复的路径,如果cpio在打包备份的时候使用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下面,同理,如果用的是相对路径,还原时也将恢复到相对路径下。

   (2)cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此,cpio命令一般和find命令配合使用。

   (3)cpio恢复的时候不会自动覆盖同名文件。

   (4)不会创建目录而是直接解压到当前文件夹。

   (5)-iv和-div的区别:-iv是将所有文件压缩到同一个目录下,-idv将压缩时候的目录等级也一并还原回去,一般来说都会加-d选项。

将etc目录备份:

find /etc/ -print | cpio -ov > etc.cpio

[root@localhost testdir]# find /etc/ -print | cpio -o > etc.cpio
41342 块

内容预览:cpio -tv < etc.cpio

解包文件:cpio -idv < etc.cpio 

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/34646

赞 (0)
SilencePavilionSilencePavilion
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • 3、文本处理命令、用户与组命令练习

    1.列出当前系统上所有已登录用户的用户名,同一个用户登录,则只显示一次 [root@localhost ~]# who root     tty1         2016-08-23 06…

    Linux干货 2016-09-19
  • 网络管理

    一、网络概念     什么是网络     资源共享的功能和优点         数据和应用程序         资源 &…

    Linux干货 2016-09-09
  • 最简单也最难:运维监控的最后1公里

    谈运维我们不得不提监控,监控是运维的起点,也是难点。随着IT架构逐渐复杂化,从前端到IT底层,中间涉及浏览器、网络、服务器、操作系统、中间件、应用、数据库等,每个环节厂商不尽相同。当出现异常需要定位哪个环节出了问题的时候,排查就耗时耗力,若使用优云监控产品,以上难题不再是问题。优云全栈运维监控覆盖了所有环节的监控,真正做到监控无盲区,运维无隐患。 运维最后一…

    系统运维 2017-01-09
  • N26 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -rv /etc/skel /home/tuser1 [root@localhost ~]# chmod&n…

    Linux干货 2017-01-23
  • Shell 脚本作业(8月11号)

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 #!/bin/bash # author:huiping # version:1.0.1 # date:2016-08-11 # describe:&nb…

    Linux干货 2016-08-15
  • 文件处理工具及正则表达式练习

    本节练习均在centos7系统下实现,部分练习只截取部分截图,另外排版的事情我已经放弃了! 1.找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行 注:^ 行首, . 匹配任意单个字符,* 匹配前面的字符任意次 突然发现前面解法错误,没有排除空格后加小括号的情况,下面是正确做法 2.统计last命令中…

    Linux干货 2017-07-29