美文网首页
文件压缩归档

文件压缩归档

作者: geekdeedy | 来源:发表于2017-06-10 14:24 被阅读0次

    文件压缩有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。LINUX上有很多压缩解压缩软件,linux上目前最常用的压缩软件时gzip和bzip2,compress已经过时了,通常这些命令通常只能针对一个文件来压缩解压缩,如果要对目录和多个文件进行压缩,就需要用到归档工具来解决。
    常见压缩命令:compress、gzip、bzip2、xz、zip
    常用归档命令:tar、cpio
    不同的压缩解压缩软件的压缩技术并不相同,这就造成了软件之间不能彼此解压缩或者压缩文件,所以需要根据被压缩文件的扩展名判断该文件使用的压缩软件。

    常见压缩文件扩展名对应的命令:

    扩展名 压缩命令 解压命令
    *.z commpress uncompress
    *.gz gzip gunzip
    *.bz2 bzip2 bunzip2
    *.xz xz unxz
    *.zip zip unzip
    *.tar.gz/*.tgz tar-gzip tar-gunzip
    *.tar.bz2/*.tbz2 tar-bzip2 tar-bunzip2
    *.tar.xz/*.txz tar-xz tar-unxz
    *.tar(归档) tar tar
    *.cpio(归档) cpio cpio

    常用压缩软件

    cmpress|uncompress|zcat

    compress [-dfvcVr] [-b maxbits] [file ...]
    -d:  解压缩,相当于uncompress
    -c:  结果输出至标准输出, 不删除原文件
    -v:  显示详情
     uncompress 解压缩
     zcat file.Z >file 不解压缩查看文件内容
    例如:
    uncompress FileName.Z (解压缩)
    compress FileName(压缩)
    

    gzip|gunzip|zcat

    gzip [OPTION]... FILE ...
    -d:  解压缩,相当于gunzip
    -c:  将压缩或解压缩的结果输出至标准输出
    -# :1-9 ,指定压缩比,值越大压缩比越大
    zcat 不解压缩查看文件内容
    例如:
    gunzip FileName.gz|gzip -d FileName.gz(解压缩)
    gzip FileName(压缩)
    

    bzip2|bunzip2|bzcat

    -d:  解压缩,相当于bunzip2
    -# :1-9 ,指定压缩比,值越大压缩比越大
    -k keep 保留源文件
    bzcat:不解压缩查看文件内容
    例如:
    bzip2 -d FileName.bz2|bunzip2 FileName.bz2(解压缩)
    bzip2 -z FileName(压缩)
    

    xz/unxz/xzcat

    -d:  解压缩,相当于gunzip
    -# :1-9 ,指定压缩比,值越大压缩比越大
    -k keep 保留源文件
    xzcat:不解压缩查看文件内容
    

    zip/unzip

    -A   调整可执行的自动解压缩文件。
    -b<工作目录>   指定暂时存放文件的目录。
    -c   替每个被压缩的文件加上注释。
    -d   从压缩文件内删除指定的文件。
    -D   压缩文件内不建立目录名称。
    -f   更新或者追加文件内容到压缩文件
    -F   尝试修复已损坏的压缩文件。
    -g   将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
    -h   在线帮助。
    -i<范本样式>   只压缩符合条件的文件。
    -j   只保存文件名称及其内容,而不存放任何目录名称。
    -J   删除压缩文件前面不必要的数据。
    -k   使 用MS-DOS兼容格 式的文件名称。
    -l   压缩文件时,把LF字符 置换成LF+CR字 符。
    -ll   压缩文件时,把LF+CR字 符置换成LF字符。
    -L   显示版权信息。
    -m   将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
    -n<字尾字符串>   不压缩具有特定字尾字符串的文件。
    -o   将压缩文件的更改时间设成和该文件相同(参照压缩包内最新文件)
    -q   不显示指令执行过程。
    -r   递归处理,将指定目录下的所有文件和子目录一并处理。
    -S   包含系统和隐藏文件。
    -t<日期时间>把压缩文件的日期设成指定的日期。
    -T   检查备份文件内的每个文件是否正确无误。
    -u   更换较新的文件到压缩文件内。
    -v   显 示指令执行过程或显示版本信息。
    -V   保 存VMS操作系统的文件属性。
    -w   在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
    -x<范本样式> 压 缩时排除符合条件的文件。
    -X   不保存额外的文件属性。
    -y   直接保存符号连接,而非该连接所指向的文件
    -z   在压缩文件加上注释。
    -$   保存第一个被压缩文件所在磁盘的卷册名称。
    -<压缩效率>   压 缩效率是一个介于1-9的数值。
     例如:
    unzip test.zip(解压缩)
    zip test1.zip test.MYI(压缩)
    

    常用归档工具

    tar归档工具

    tar [主选项+辅选项] 文件或者目录(主选项是必须要有的,辅选项可以选用)
    主选项:(同一条命令只能使用一个主选项)
    c 创建新的档案文件。备份一个目录或是一些文件,相当于打包。
    x 从档案文件中释放文件。相当于拆包。
    t 列出档案文件的内容,查看已经备份了哪些文件。
    辅助选项:
    -z :调用gzip命令压缩 
    -j :调用bzip2命令压缩
    -v :压缩的过程中显示文件!这个常用
    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
    -p :使用原文件的原来属性(属性不会依据使用者而变)
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!
    

    示例:

    tar -tf aaa.tar.gz 在不解压的情况下查看压缩包的内容
    压缩
    tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
    tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个
    gzip压缩过的包,命名为jpg.tar.gz
    tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个
    bzip2压缩过的包,命名为jpg.tar.bz2
    tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成
    一个umcompress压缩过的包,命名为jpg.tar.Z
    解压
    tar –xvf file.tar //解压 tar包
    tar -xzvf file.tar.gz //解压tar.gz
    tar -xjvf file.tar.bz2 //解压
    tar.bz2tar –xZvf file.tar.Z //解压tar.Z

    cpio归档工具
    cpio可将文件或目录从文件库获取出来或将散列文件拷贝到文件库。是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio” 或者“.tar” 结尾的文件。
    cpio 共有三种基本模式:
    -o即copy-out 模式,将一组文件copy到一个文件库。
    -i 即copy-in 模式,读取文件库,并将其展开在当前目录。
    -p 能从某个目录读取所有文件(包括子目录到另一个目录),且不以归档的方式存放。
    -o常用标准输入设备读取要copy 的文件名称,并将copy成的归档文件通过标准输出设备输出,一般利用输入/输出重定向或管道的原理,达到真正复制的功能。

    cpio [ 选项] >  文件名或者设备名
    cpio [ 选项] <  文件名或者设备名
    选项
    -o  将文件拷贝打包成文件或者将文件输出到设备上
    -i  解包,将打包文件解压或将设备上的备份还原到系统
    -t  预览,查看文件内容或者输出到设备上的文件内容
    -v  显示打包过程中的文件名称。
    -d  解包生成目录,在cpio 还原时,自动的建立目录
    -c  一种较新的存储方式
    

    示例:

    **利用cpio备份: **
    find temo –print | cpio –ocdv > /dev/rfd0135ds18
    find . |cpio -co > ../initrd(将temp目录下的文件备份到软盘上)
    ls |cpio –o >/usr/backup(将当前目录下的所有文件复制成backup archive file)
    ls *.c | cpio –o>backup(复制工作目录中的所有的c程序)
    ls| cpio –p /usr/linfs/tempdir (复制当前工作目录下的文件到/usr/linfs/tempdir 目录,不生成archive file)
    利用cpio 复原:
    cpio –icdv < /dev/rfd0135ds18 (将软盘中的文件复原。)
    cpio -i < ../initrd(将上层目录的initrd文件释放到当前文件夹)
    cpio –icdv "*stat.wp" < /dev/rfd0135ds18 (仅复原*stat.wp的文件 )
    cpio –i </usr/linfs/old1 *.f (仅复原*.f 文件)

    相关文章

      网友评论

          本文标题:文件压缩归档

          本文链接:https://www.haomeiwen.com/subject/vpsgfxtx.html