天天看点

Linux文件压缩与归档

一、压缩和解压缩工具

    一般压缩的对象的是:ascii文件

    压缩比:压缩前后的size比例

        含义:把相同的内容,进行替换为简单的字符//很多压缩算法

        目的:时间换空间{CPU时间}

    compress/uncompress  , .Z 后缀

    gzip/gunzip        , .gz

    bzip2/bunzip2  , .bz2

    xz/unxz  ,  .xz

    zip/unzip

    tar,cpio

    1.gzip/gunzip/zcat

        gzip a//会删除原有文件

        gunzip a.gz //会删除压缩文件

        zcat a.gz //自动临时解压,并查看,文件太大的话,建议不要使用zcat,因为要占用大量的内存

        -d :解压缩,相当于gunzip

        -# :指定压缩比,数字越大,压缩比越大,默认是6(1-9)

            gzip -9 aa

        -c :输出到屏幕,并保留源文件

            gzip -c aa > aa.gz

    2.bzip2/bunzip2/bzcat

        bzip2 a //会删除源文件

        -d a.bz2 //解压缩

        -# //指定压缩比(1-9),默认是6

        -k //keep 保留源文件

            bzip2 -k a //自动保存源文件

    3.xz/unxz/xzcat{.xz} ,lzma/unlzma/lzcat{.lzma}

        -d 解压缩

        -# 指定 压缩级别默认6,1-9

        -k 保留源文件

    //上述都支持压缩文件,不支持压缩目录

二、归档工具:tar,cpio

    tar [OPTION] ... FILE ...

        -c 创建归档

            -f 指定文件路径和名字

            cf a.tar a

        -x 展开归档

            tar xf a.tar -C /tmp/test //指定其他路径

        -t 查看归档文件的文件列表

            tar -tf a.tar

        -r //apend 添加新的文件到tar文件

            tar -r test/messages log.tar

    cpio //3种模式

        cpio-out:从标准输入获得文件名列表 (一行一个)。默认把归档包写到标准输出,因此一般重定向到 一个文件中

        copy-in模式中, cpio 从归档包里读取文件, 或者列出归档包里的内容。它从标准输入读入归档包

        copy-pass模式中, cpio把文件从一棵目录树复制到另一棵, 它结合了 copy-in 和 copy-out 的操作, 但不使用归档包。

        缺省情况下,cpio从标准输入读取输入数据,向标准输出写入输出数据。

        -o或--create:执行copy-out模式,建立备份档

        -c:使用旧ASCII备份格式;

        -v:verbose

        -B:将输入/输出的区块大小改成5210Bytes;

        -i或--extract:执行copy-in模式,还原备份档;

        -d或--make-directories:如有需要cpio会自行建立目录;

        -t或--list:将输入的内容呈现出来;

        将/etc下的所有普通文件都备份到/opt/etc.cpio,使用以下命令:

        find /etc –type f | cpio –ocvB >/opt/etc.cpio

        cpio –icduv 《 /opt/etc.cpio  //有时可能因为备份的文件过多,一个屏幕无法显示完毕,此时我们利用下面命令,让磁带机的文件信息输出到文件。    

        将系统上所有资料备份到磁带机内,使用以下命令:

        find / -print | cpio -covB > /dev/st0 这里的/dev/st0是磁带的设备名,代表SCSI磁带机。

        查看上例磁带机上备份的文件,使用以下命令:

        cpio -icdvt 《 /dev/st0 > /tmp/st_content

三、结合使用:

    -z ;gzip2

        zcf a.tar.gz file ...

        xf a.tar.gz  //展开的时候可以自动识别压缩格式

    -j :bzip2

        -jcf

        -jxf

    -J :xz

        -Jcf

        -Jxf

四、zip/unzip

    通用压缩工具,但是性能一般

    本身既能归档,也能压缩

    zip test.zip /test/

    unzip test.zip

继续阅读