压缩、解压缩及归档工具

压缩、解压缩及归档工具

一、杂项知识整理

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

相关推荐

  • shell四剑客之sed

    概述 Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文件内容并没有改变 ,除非你使用重定向存储输出。Sed主要…

    Linux干货 2016-08-15
  • CentOS 5.0系统启动流程

    注:CentOS系统5.x,6.x和7.x的启动流程不同,所以本文仅讨论CentOS 5.x的启动流程。 1. POST加电自检 服务器在开机之后首先会先进行硬件的检测,在开机界面我们可能会看到检测硬盘,cpu或raid卡等信息,此界面即硬件自检界面。 2. BIOS引导 BIOS(BootSequence)用于通过指定的引导装置引导系统启动。 3. Boo…

    2017-05-14
  • jobs简介

    jobs简介     jobs可以显示当前shell 环境中已启动的作业状态。     用linux的时候经常会碰到类似这种情形,复制,下载一个很大的文件或编辑一个文件,任务占据着界面不能做其他操作,这个时候想不暂停或中止任务去做别的操作就可以将正在执行的命令送往后台去运行。 作业:作业号     …

    Linux干货 2015-05-23
  • sed基本用法详解

    一、sed介绍:        sed是非交互式的编辑器,同时又是面向字符流的,一次处理一行文本。当前输入的行被缓存至一个被称为模式空间(pattern space)的内存空间中,与给定的模式进行比对,若不匹配,则将内容输出至屏幕,之后读取第二行;若匹配,则执行编辑命令,命令执行完成后,将模式空间中…

    Linux干货 2016-08-10
  • 权限(用户、特殊、ACL)

    root权限(id=0) root无论在什么情况下都有rw权限,但是是否拥有x权限,要分情况: 第一,文件所有者和所属组都无x权限,root也无x权限; 第二,文件所有者和所属组二者任何一个有x权限,root就有x权限。 用户得到的权限 匹配顺序:文件所有者——文件所属组——其他人(从左到右) 用户访问文件,一旦按次序匹配成功,其获得的权限就是匹配选项所对应…

    Linux干货 2017-05-30
  • Linux运维之磁盘管理

    ※磁盘管理 计算机是由五大组成部件:输入设备,输出设备,存储器,运算器,控制器,其中输入设备我们称之为I/O设备,如键盘,扫描器,运算器和控制称之为cpu,存储器如,内存,硬盘,优盘。计算机其实只需要内存和cpu其实已经可以完成工作了,但是内存属于随机存储设备,断电之后就丢失数据,所以我们就需要通过其他的辅助存储设备来弥补内存的不足,这些辅存我们称之为外存。…

    Linux干货 2016-08-27