• U9文件与文件系统的压缩和打包


    1.在Linux的环境中,压缩文件的扩展名大多为:*.tar,*.tar.gz,*.tgz,*.bz2.

    2.gzip可以说是应用最广的压缩命令了.目前gzip可以揭开compress,zip和gzip等软件压缩的文件.gzip所建立的压缩文件的文件名为:*.gz.使用gzip压缩的文件在Windows系统中,竟然可以被WinRAR解压缩.  

      将test压缩:  gzip -v test  (压缩某个文件,这个文件不能有symbolic link)(在默认状态下,原文件被压缩之后,原文件就不再存在了)(若将test用最佳压缩比压缩,并保  留原文件应该是这样的:  gzip -9 -c test>test.gz)

      由于test是文本文件,可以用zcat读出来:  zcat test.gz

      将压缩的文件解压缩:  gzip -d test.gz

    3.若是说gzip是为了替代compress并提供更好的压缩比而成立的,那么bzip2则是为了取代gzip而来的.他压缩的文件名为*.bz2.

      将test用bzip2压缩:  bzip2 -z test  (在默认状态下,原文件被压缩之后,原文件就不再存在了)

      由于test是文本文件,可以用bzcat读出来:  bzcat test.bz2

      将上面那个压缩文件解压缩:  bzip2 -d test.bz2

      将test用最佳压缩比压缩,并保留原文件:  bzip2 -9 -c test>test.bz2

      由以上可知gzip 和 bzip2的用法很像.

    4.虽然gzip与bzip2也能针对目录进行压缩,不过这两个命令对目录的压缩是指将目录中的所有文件分别进行压缩,而不是像Windows中的WinRAR将很多数据打包成一个文件后压缩在  一起.这就需要打包程序tar来帮忙了.先介绍一下tar的几个常用的参数:  

                -j 通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2.

                -z通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz.

                -c新建打包文件,可搭配-v来查看过程中被打包的文件名.

                -t查看打包文件的内容含有那些文件名,重点在查看文件名.

                -v在压缩/解压缩过程中,将正在处理的文件名显示出来.

                -x解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开.

                注意:-c,-t,-x不可用是出现在一串命令中.

            一般常用的组合是:  用bzip2压缩:tar -jcv -f 自定义压缩后的名字.tar.bz2 要被压缩的文件或目录名称

                       用gzip压缩:tar -zcv -f 自定义压缩后的名字.tar.gz 要被压缩的文件或目录名称

                       查询:tar -jtv -f filename.tar.bz2  (或者把-jtv换成-ztv来解压filename.tar.gz)

                       解压缩:tar -jxv -f 要被解压的文件名.tar.bz2 -C 欲解压的目录

            例如:将目录test(目录test中包含文件test1,test2,test3)用gzip压缩:  tar -zpcv -f ./new.tar.gz ./test

               将其解压到当前文件夹:  tar -zxv -f ./new.tar.gz -C ./ 

            当然还有"仅解压包中单一文件的方法"和"解压除去某些文件的方法"和"压缩比某个时刻还要新的文件"等,要用的时候再看吧. 

    5.备份(dump)和恢复(restore)工具.新建镜像文件(mkisofs)和光盘刻录工具(cdrecord)等在用的时候再看.

    6.dd的使用,tar可以用来备份关键数据,而dd则可以用来备份整块分区或者整块磁盘.

                例如:  将自己的磁盘第一个扇区备份下来:  dd if=/dev/hdc of=/tmp/mbr.back bs=512 count=1

  • 相关阅读:
    源码解析之–网络层YTKNetwork
    ARC和非ARC文件混编
    Xcode真机调试中"There was an internal API error"错误解决方法
    设置textView或者label的行间距方法
    iOS中__block 关键字的底层实现原理
    使用AVCaptureSession捕捉静态图片
    使用AVCaptureSession显示相机预览
    短小强悍的JavaScript异步调用库
    开源中国愚人节网页变模糊的js blur代码
    undefined与null的区别
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/U9.html
Copyright © 2020-2023  润新知