• linux下的打包与压缩


    linux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gziplinux压缩或解压缩工具有很多,除了已经很少有人使用的compress外,现在常用的还有tar,bzip2,xz 和gzip等,我们来说说它们的用法。

    先来说bzip2。bunzip2和bzcat可以由bzip2指定选项来执行同样的结果,这里只介绍bzip2的用法。使用bzip2这个工具创建的文件以.bz2,.bz,.tbz,.tar.bz2或者.tbz2结尾。

    bzip2命令的用法:

    bzip2 [选项] [文件]
    常用选项:

    bzip2 -d        解压缩文件
    bzip2 -c        将压缩或解压缩的结果送到标准输出
    bzip2 -f        使用此选项,在解压缩文件时,若输出文件与现有文件同名,则覆盖同名的文件
    bzip2 -k        在压缩或解压缩文件之后,保留原始文件
    bzip2 -s        解压或压缩文件时,降低内存使用量
    bzip2 -t        测试文件的完整性
    bzip2 -v        压缩或解压缩文件时,显示具体过程
    bzip2 -z        强制压缩一个文件
    bzip2 -#        指定压缩比率
    

    xz同样也是linux下出色的压缩工具,lunxz,xzcat,lzma,unlzma,lzcat命令可以由xz命令调用指定的选项来执行,因此只介绍xz命令的用法。xz命令生成的文件通常以.xz或者.lzma格式结尾。

    xz命令的用法:

    xz [选项] [文件]
    常用选项有:

    xz -z           压缩一个文件
    xz -d           解压缩文件
    xz -t           测试文件的完整性
    xz -l           查看一个压缩文件的信息
    xz -k           压缩完文件后不删除原始文件
    xz -f           使用此选项时,若目标文件存在,则删除原始文件,再解压
    xz -c           将执行命令的结果输出到标准输出
    xz -F           指定压缩或解压缩文件的格式
    xz -#           指定压缩文件时的压缩比率
    

    linux上还有一个常用的解压工具,就是gzip了。同linux下其它工具一样,gunzip,zcat也可以由gzip指定的选项来执行,因此只介绍gzip命令的用法。用gzip命令创建的文件通常以.gz,.tar.gz,.tar.Z或者.tgz结尾。

    gzip命令的用法:

    gzip [选项] [文件]
    常用选项有:

    gzip -c            将命令的执行结果输出到标准输出
    gzip -d            解压缩文件
    gzip -f            使用此选项时,若目标文件存在,则删除原始文件,再解压
    gzip -l            列出这个压缩文件的具体信息
    gzip -n            解压缩文件时,忽略文件中原来的时间戳
    gzip -N            解压缩文件时,保留文件中原始的时间戳
    gzip -r            将指定目录下的所有文件及子目录一起压缩
    gzip -t            测试文件的完整性        
    gzip -v            显示压缩或解压缩的具体过程
    gzip -#            指定压缩比率
    

    再来说说tar这个非常强大的工具吧。 tar最初是为了做磁带备份而设计的,它的作用是把文件和目录备份到磁带中,然后再从磁带中提取或恢复文件。现在可以使用tar命令来备份数据到任何存储介质上。tar是文件级备份,不必考虑底层文件系统类别,并且支持增量备份。tar命令创建的文件通常以.tar结尾,tar命令可以调用gzip,bz2或者xz工具来压缩或解压缩指定的文件.

    tar命令的用法:

    tar [选项] [文件]
    常用选项有:

    tar -z          压缩或解压缩一个文件
    tar -x          从file.tar压缩包中提取所有文件
    tar -A          追加一个压缩包到一个档案内
    tar -c          创建了个压缩档案
    tar -d          比较一个压缩档案和被压缩文件的区别
    tar -r          追加文件到指定的压缩包中
    tar -t          测试文件的完整性
    tar -u          增量备份文件,只备份比压缩包中已经备份文件新的文件
    tar -x          从一个压缩包中提取出文件
    tar -C          解压缩文件到指定的目录
    tar -f          指定要压缩或解压缩的文件
    tar -j          调用bzip2来压缩或解压缩文件
    tar -J          调用xz来压缩或解压缩文件
    tar -p          解压缩文件时保留原始文件的权限
    tar -v          显示压缩或解压缩的过程
    tar -z          调用gzip来压缩或解压缩文件
    tar -P          保留原始文件的绝对路径,解压时自动解压到绝对路径下
    tar --exclude   打包目录时,不打包指定的文件
    

    工具的用法都已经说完了,现在来看看实际工作中的用法。

    例1:把系统中的/etc目录备份到/home目录下备份后的文件名为etc.backup的文件, 可以使用

    #tar -jcvf etc.backup.tar.bz2 /etc
    

    来把/etc/目录打包备份成结尾为tar.bz2的压缩包,也可以使用

    #tar -zcvf etc.backup.tar.gz /etc
    

    来把/etc/目录打包备份成结尾为tar.gz的压缩包,还可以使用

    #tar -Jcvf etc.backup.tar.xz /etc
    

    来把/etc/目录打包备份成结尾为tar.xz的压缩包

    [root@localhost ~]# tar -jcvf /home/etc_backup.tar.xz /etc
    /etc/
    /etc/pm/
    /etc/pm/power.d/
    /etc/pm/sleep.d/
    /etc/pm/config.d/
    /etc/libuser.conf
    /etc/security/
    /etc/security/namespace.d/
    ...
    
    [root@localhost ~]# ls -lah /home
    total 8.0M
    -rw-r--r--   1 root root 8.0M Apr 16 12:18 etc_backup.tar.xz
    

    同样的,已经我们会看到各种格式的压缩文件,这时候我们可以使用tar xf filename.tar来解压这个压缩包。

    例2:我们在某个目录下有个Python-2.7.9.tar.xz和pip-1.4.1.tar.gz的文件,我们可以使用如下命令来解压这两个压缩包。

    [root@localhost ~]# tar xf Python-2.7.9.tar.xz
    [root@localhost ~]# tar xf pip-1.4.1.tar.gz 
    [root@localhost ~]# ls -Alh
    total 13M
    drwxr-xr-x  17 1000  1000 4.0K Dec 11  2014 Python-2.7.9
    -rw-r--r--   1 root root   12M Apr 16 12:24 Python-2.7.9.tar.xz
    drwxr-xr-x   5  501 games 4.0K Aug  8  2013 pip-1.4.1
    -rw-r--r--   1 root root  435K Apr 16 12:24 pip-1.4.1.tar.gz
    

    我们可以看到,tar没有指定使用哪个工具来解压这两个不同格式的压缩包,这两个压缩包也已经被成功解压了。实际上,tar命令会根据后面所接的压缩包的格式自动调用解压工具,这样以后再看到不同格式的压缩文件,我们就可以使用tar xf tar_file这个命令来解压压缩包了,so easy吧!!!

    祝大家工作学习愉快!!

  • 相关阅读:
    commands.getstatusoutput和subprocess.call结果不一致
    win10 企业版 2015 长期服务激活
    pycharm设置护眼模式
    实战--滚动菜单
    javascript中this的用法
    jQuery之remove与empty的区别
    clone方法案例实践
    jQuery内部插入与外部插入
    jQuery文档处理
    2020/02/11星期二复习
  • 原文地址:https://www.cnblogs.com/renpingsheng/p/6936862.html
Copyright © 2020-2023  润新知