压缩、解压缩及归档工具

压缩、解压缩及归档工具

一、杂项知识整理

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

相关推荐

  • LVS-fwm&persistence

    Evernote Export 1、LVS-fwm fwm:FireWall Mark        在netfilter上给报文打标记;mangle表;        ipvsadm -A|E -t|u|f service-address [-s scheduler] &nbs…

    Linux干货 2016-12-01
  • MySQL 多实例详解

    目录 一、基本概念 1、MySQL多实例        就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程。这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文件。在提供服务时候,多实例MySQL在逻辑上看来是各自独立的,多个实例的自身是根据配置…

    Linux干货 2015-09-23
  • Linux基础-第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    2018-03-19
  • Linux基础知识之用户和组的配置文件解析

    实验环境:  Linux系统的版本为CentOS6.8_x86_64版本,以root用户远程用xshell连接,进行实验。 1.创建用户设置的配置文件:/etc/default/useradd        useradd 的配置文件如下图所示:        &nbs…

    Linux干货 2016-08-02
  • iptables练习

    iptables练习 一、COMMAND 1、列出所有链的规则:iptables -L ,显示某条链的规则就是iptables -L INPUT 详细信息:iptables -vnL 2、清楚所有链的规则 :iptables -F 3、设置默认规则策略:iptables -P INPUT DROP,iptables -P OUTPUT DROP , ipta…

    Linux干货 2016-12-20
  • centos7或centos6中如何编译安装源码程序包

    yum仓库配置、程序的编译安装

    2017-12-02