zoukankan      html  css  js  c++  java
  • linux命令分享一:压缩命令

    Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压

    zip格式

    压缩: zip -r [目标文件名].zip [原文件/目录名]
    解压: unzip [原文件名].zip

    注:-r参数代表递归

    tar格式(该格式仅仅打包,不压缩)

    打包:tar -cvf [目标文件名].tar [原文件名/目录名]
    解包:tar -xvf [原文件名].tar

    注:c参数代表create(创建),x参数代表extract(解包),v参数代表verbose(详细信息),f参数代表filename(文件名),所以f后必须接文件名。

    tar.gz格式

    方式一:利用前面已经打包好的tar文件,直接用压缩命令。

    压缩:gzip [原文件名].tar
    解压:gunzip [原文件名].tar.gz

    方式二:一次性打包并压缩、解压并解包

    打包并压缩: tar -zcvf [目标文件名].tar.gz [原文件名/目录名]
    解压并解包: tar -zxvf [原文件名].tar.gz

    注:z代表用gzip算法来压缩/解压。

    tar.bz2格式

    方式一:利用已经打包好的tar文件,直接执行压缩命令:

    压缩:bzip2 [原文件名].tar
    解压:bunzip2 [原文件名].tar.bz2

    方式二:一次性打包并压缩、解压并解包

    打包并压缩: tar -jcvf [目标文件名].tar.bz2 [原文件名/目录名]
    解压并解包: tar -jxvf [原文件名].tar.bz2

    注:小写j代表用bzip2算法来压缩/解压。

    tar.xz格式

    方式一:利用已经打包好的tar文件,直接用压缩命令:

    压缩:xz [原文件名].tar
    解压:unxz [原文件名].tar.xz

    方式二:一次性打包并压缩、解压并解包

    打包并压缩: tar -Jcvf [目标文件名].tar.xz [原文件名/目录名]
    解压并解包: tar -Jxvf [原文件名].tar.xz

    注:大写J代表用xz算法来压缩/解压。

    tar.Z格式(已过时)

    方式一:利用已经打包好的tar文件,直接用压缩命令:

    压缩:compress [原文件名].tar
    解压:uncompress [原文件名].tar.Z

    方式二:一次性打包并压缩、解压并解包

    打包并压缩: tar -Zcvf [目标文件名].tar.Z [原文件名/目录名]
    解压并解包: tar -Zxvf [原文件名].tar.Z

    注:大写Z代表用ncompress算法来压缩/解压。另,ncompress是早期Unix系统的压缩格式,但由于ncompress的压缩率太低,现已过时。

    jar格式

    压缩:jar -cvf [目标文件名].jar [原文件名/目录名]
    解压:jar -xvf [原文件名].jar

    注:如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个META-INF/MANIFEST.MF配置文件,内容如下:

    Manifest-Version: 1.0
    Created-By: 1.6.0_27 (Sun Microsystems Inc.)
    Main-class: the_name_of_the_main_class_should_be_put_here

    然后用如下命令打包:

    jar -cvfm [目标文件名].jar META-INF/MANIFEST.MF [原文件名/目录名]

    这样以后就能用“java -jar [文件名].jar”命令直接运行主类中的public static void main方法了。

    7z格式

    压缩:7z a [目标文件名].7z [原文件名/目录名]
    解压:7z x [原文件名].7z

    注:这个7z解压命令支持rar格式,即:

    7z x [原文件名].rar

    一:tar

    解压
    语法:tar [主选项+辅选项] 文件或者目录

    使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

    主选项:

    c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。相当于打包。

    x 从档案文件中释放文件。相当于拆包。

    t 列出档案文件的内容,查看已经备份了哪些文件。

    特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

    辅助选项:

    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz

    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2  

    -v :压缩的过程中显示文件!这个常用

    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!

    -p :使用原文件的原来属性(属性不会依据使用者而变)

    --exclude FILE:在压缩的过程中,不要将 FILE 打包!

    范例:

    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

    [root@linux ~]# tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!

    [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩

    [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩

    # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

    # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

    # 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

    # 上述指令在执行的时候,会显示一个警告讯息:

    # 『tar: Removing leading `/" from member names』那是关於绝对路径的特殊设定。

     

    范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

    [root@linux ~]# tar -ztvf /tmp/etc.tar.gz

    # 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,

    # 就得要加上 z 这个参数了!这很重要的!

     

    范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

    [root@linux ~]# cd /usr/local/src

    [root@linux src]# tar -zxvf /tmp/etc.tar.gz

    # 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说

    # 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz

    # 则解开的目录会在 /usr/local/src/etc ,另外,如果您进入 /usr/local/src/etc

    # 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

     

    范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

    [root@linux ~]# cd /tmp

    [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

    # 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,

    # 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

     

    范例五:我要备份 /home, /etc ,但不要 /home/dmtsai

    [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

     

    另外:tar命令的C参数

     

      $ tar -cvf file2.tar /home/usr2/file2
      tar: Removing leading '/' from members names
      home/usr2/file2
      该命令可以将/home/usr2/file2文件打包到当前目录下的file2.tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(这里是home/usr2/,根目录'/'被自动去掉了)一并被压缩进来。使用tar命令解压缩后会出现以下情况:
      $ tar -xvf file2.tar
      $ ls
      …… …… home …… ……
      解压缩后的文件名不是想象中的file2,而是home/usr2/file2。

      $ tar -cvf file2.tar -C /home/usr2 file2
      该命令中的-C dir参数,将tar的工作目录从当前目录改为/home/usr2,将file2文件(不带绝对路径)压缩到file2.tar中。注意:-C dir参数的作用在于改变工作目录,其有效期为该命令中下一次-C dir参数之前。
      使用tar的-C dir参数,同样可以做到在当前目录/home/usr1下将文件解压缩到其他目录,例如:
      $ tar -xvf file2.tar -C /home/usr2
      而tar不用-C dir参数时是无法做到的:
      $ tar -xvf file2.tar /home/usr2
      tar: /tmp/file: Not found in archive
      tar: Error exit delayed from previous errors

  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/Alight/p/5191951.html
Copyright © 2011-2022 走看看