zoukankan      html  css  js  c++  java
  • [转]Unix平台下的常用命令技巧之 tar包、压缩与解压缩

    在Unix下常遇到一些解包、压包的问题。一般情况下将若干文件或文件夹打成tar包,是为了便于文件的传输和管理。例如,通过FTP从Unix平台下载目录结构较多的文件夹到Windows平台或另外一Unix平台,虽然文件夹不是太大,但由于每个文件很小,且非常多,每个文件都要进行文件头、尾检查校验。下载速度会非常慢。如果打成tar包,传输就会快很多。存档的文件夹打成tar包也容易管理。
    值得注意的是:tar文件只是将文件或文件夹打包,并没有进行压缩。如果文本文件较多,对其压缩会节省很大的磁盘空间,传输将更快。压缩和解压缩方法可以参考下文给出的示例。
    下面我以Sun Solaris 5.8(其他unix如linux、aix大体相同)为例,就常见的一些问题向各位同仁作一下介绍,供大家在工作中参考。因水平有限,仅做抛砖引玉,欢迎大家积极补充。
     
     
     
     
    1、如何解开.tgz或.tar.gz文件?
    2、如何解开.z或.Z文件?
    3、如何解开.tar.Z文件?
    4、如何安装、卸载、列出rpm包信息?(linux常用)
    5、如何使用tar命令测试、展开、生成tgz包?
    6、如何解开和生成tar文件?
    7、如何象在PC上的ARJ那样的分解打包软件?
    8、在Unix下如何压缩文件?
    9、如何解开和生成其他包如.jar文件?
    10、抛砖引玉,待同仁补充
     
    ============================================================
    1、如何才能解开.tgz或.tar.gz文件?
     
    1)方法一:
    gzip -d filename.tar.gz   或 gzip -d filename.tgz
    tar -xvf filename.tar
    2)方法二:
    解压并列表:
    gzip -dc filename.tgz | tar xvf -           #解.tgz文件
    gzip -dc filename.tar.gz | tar xvf -               #.tar.gz 同 .tgz文件
    只列表不生成文件:
    gzip -dc filename.tgz | tar tvf -                        #解.tgz文件
    gzip -dc filename.tar.gz | tar tvf -                 #.tar.gz 同 .tgz文件
    gzip的其他使用方法参见gzip -h
    ============================================================
    2、如何才能解开.z或.Z文件?
     
    1)解.z 文件: gzcat filename.z
    2)解.Z 文件:uncompress -c filename.Z
    ============================================================
    3、如何解.tar.Z文件?
     
    1)解压并列表:
    zcat filename.tar.Z | tar xvf -            #解.tar.Z文件
    uncompress -c tast.tar.Z | xvf -                     #uncompress -c 同 zcat
    2)只列表不生成文件:
    zcat filename.tar.Z | tar tvf -             #解.tar.Z文件
    uncompress -c filename.tar.Z | tvf -        #uncompress -c 同 zcat
    ============================================================
    4、如何安装、卸载、列出rpm包信息?(linux常用)
     
    1)安装rpm包时显示进度
         例如:用-vh参数,如rpm -ivh ipchains-1.3.6-1.i386.rpm
    2)直接通过ftp来安装rpm包
         例如:rpm -i http://www.cnblogs.com/ding0910/admin/ftp://ftp.xxx.xxx/
    3)校验所有的rpm包,查找丢失的文件
    例如:rpm –Va
    4)查找一个文件属于哪个rpm包
         例如:rpm -qf /usr/bin/who
    5)列出一个rpm包的描述信息
         例如:rpm -qpi mon-0.37j-1.i386.rpm
    6)列出一个rpm包的文件信息
    例如:rpm -qpl mon-0.37j-1.i386.rpm
    7)列出并过滤已经安装的包
            例如:rpm –q |grep IBM
    8)删除已安装的包
            例如:rpm –e 包名
    9)其他rpm操作参见#rpm --help
    ============================================================
    5、如何使用tar命令测试、展开、生成tgz包?
     
    tar zvfx filename.tgz                       #在当前目录下展开这个包
    tar zvft filename.tgz                              #只测试不展开
    tar zvfx filename.tgz -C /new-dir              #展开后放到/new-dir目录下
    tar zvfc filename.tgz /filename              #把/filename目录下所有的文件及子目录打包成filename.tgz
    ============================================================
    6、如何解开和生成tar文件?
     
    tar xvf filename.tar                              #当先目录解包
    tar tvf filename.tar                              #只显示不生成文件
    tar cvf filename.tar <file or dir list>          #生成包
    tar的参数很多,要仔细学习参见#tar -h
    ============================================================
    7、如何象在PC上的ARJ那样的分解打包软件?
     
    # split -b 100k big.file
       将big.file分解成若干500K的小文件 (名为xa, xb, xc, ...)
    # split -l 500 big.file
       将big.file分解成每个500 lines的小文件
    其它使用方法参见split –h
     
    ============================================================
    8、在Unix下如何压缩文件?
     
    在unix下压缩方法有多种,可以参见gzip、gunzip、zcat、compress等工具文档,也可以参见上面所述的一些方法。下面仅以compress命令示例:
     
    例如:需要将/filename的文件打包并压缩,需要做以下步骤:
    1)打包
    tar cvf filename.tar ./dir
    2)压缩
    compress filename.tar                  #生成filename.tar.Z文件
    如果还原回原来的目录结构
    1)解压缩
    uncompress filename.tar.Z
    3)解tar包
    tar xvf filename.tar
     
    如果unix命令参数不熟悉,一般也可以通过ftp将压缩或打包文件传到PC上,利用Windows下的Winzip或rar等压缩工具解开。
     
    ==========================================================
    9、如何解开和生成其他包如.jar文件?
     
    在unix上生成和解开jar包和对tar包的操作差不多。
    例如:
    jar cvf filename.jar /dirname    #将/dirname 打成jar包
    jar xvf filename.jar                                #解开jar包
    jar tvf       filename.jar                                  #只列表不解开jar包
     
  • 相关阅读:
    RecyclerView用法
    POJ 3233 Matrix Power Series 【经典矩阵快速幂+二分】
    Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 【二分 + 尺取】
    ACM-ICPC 2017 Asia Xi'an J LOL 【暴力 && 排列组合】
    2016 ACM/ICPC亚洲区大连站 F
    2016 ACM/ICPC亚洲区大连站-重现赛 解题报告
    ACM-ICPC 2017 Asia HongKong 解题报告
    Codeforces Round #515 (Div. 3) B. Heaters【 贪心 区间合并细节 】
    POJ 1984 Navigation Nightmare 【经典带权并查集】
    树的直径的求法即相关证明【树形DP || DFS】
  • 原文地址:https://www.cnblogs.com/ding0910/p/1388029.html
Copyright © 2011-2022 走看看