DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

打包与压缩


zip and unzip

  • 压缩web文件夹到web.zip文件中,不包括web中所有.svn文件夹:zip web.zip -r web -x '.svn/'

  • 追加新目录到已有压缩文件中:zip web.zip -r newdir,如果需要在web.zip的dir1/subdir/subsubdir下增加一个文件new.xml,新建dir1/subdir/subsubdir,将new.xml拷贝过去形成dir1/subdir/subsubdir/new.xml,然后zip web.zip -r dir1,web.zip中dir1/subdir/subsubdir下的其他文件不受影响;

  • 解压缩到指定文件夹:unzip web.zip -d dst_extract_dir

  • 解压web.zip中的top/sub/aa.js文件到当前目录下,保留目录结构:

    unzip web.zip top/sub/aa.js

  • 解压web.zip中的top/sub/aa.js文件到指定目录下,保留目录结构:

    unzip web.zip top/sub/aa.js -d dst_extract_dir

  • 解压web.zip中的top/sub/aa.js文件到指定目录下,不保留目录结构(文件直接放在指定目录下,没有top/sub文件夹):

    unzip -j web.zip top/sub/aa.js -d dst_extract_dir

    unzip -j build/GcpCollector.zip GcpCollector/lib/core/GcpServerCore.jar -d integral_test/lib

  • 读取jar包的meta info: unzip -p target.jar META-INF/MANIFEST.MF (-p选项将文件内容输出到stdout上)

压缩与解压命令:gzip/zip/gunzip/unzip

压缩/解压缩gz文件:gzip/gunzip filename

二者默认在压缩/解压后删除原始文件,如果想要保留的话用-c选项:

gzip -c myfile.txt > myfile.gz

gunzip -c test.tar.gz > test.tar

gzcat test.tar.gz > test.tar(gzcat<=>gunzip -c,linux不支持此命令);

查看压缩包里文件清单的命令

  • tar -t

  • gzip -l

  • unzip -l web.zip

  • unzip -l web.zip | less 适用于文件内容比较多,且需要查看某一部分的情况

  • less web.zip

tar -tvf只能显示tar文件和tar文件打成的gz包中的内容,如果是 直接用gzip压缩文件,tar -t是无效的,要用:

gzip -l filename.gz

来查看文件清单。

打包和解包命令:tar

压缩当前目录里的所有文件到/home/test/kk.tar文件中:

tar -cvf /home/test/kk.tar *

将当前目录里的aa和bb两个文件打包到kk.tar中:

tar -cvf /home/test/kk.tar aa bb

将s3目录下的所有文件打包到k3.tar.gz中(Solaris不支持-z选项):

tar czf k3.tar.gz s3/*

查看k3.tar.gz的内容:

tar -tvf k3.tar.gz

输出为:

-rw-rw-r-- test/test 10240 2011-10-14 03:05:15 s3/aa -rw-rw-r-- test/test 11 2011-10-13 09:30:43 s3/bb

即包括s3目录也打进了压缩包里;

将/home/test/ss/tt.tar解压到/home/test/s3下(要求s3文件夹已存在):

tar -xvf /home/test/ss/tt.tar -C /home/test/s3

若不用-C指定解压目录,则解压到当前目录下;

tar参数说明:

-c表示创建tar文件;-x表示解压文件;-v表示verbose,即显示处理过程;-f要求后面紧跟要处理的tar文件的文件名;-z表示用gzip压缩生成的tar文件;

Solaris的tar命令没有-z选项,不能用tar -zxvf命令解压gz文件,必须先用:

gunzip filename.gz(或者gzip -d filename.gz)

解压成tar包,然后用tar -xvf解包。

附:

下面是将terracotta-2.7.2目录下的所有内容打包后在tc272-2目录里解压的过程:

[godu@goduserver terracotta-2.7.2]$ tar -cvf /home/godu/tc272.tar *

[godu@goduserver terracotta-2.7.2]\( cd [godu@goduserver ~]\) mkdir tc272-2 [godu@goduserver ~]\( cd tc272-2 [godu@goduserver tc272-2]\) tar -xvf /home/godu/tc272.tar

这个过程除了生成一个tar文件外,等价于将terracotta-2.7.2目录下的所有内容拷贝到tc272-2目录里:

[godu@goduserver ~]$ mkdir tc272-2

[godu@goduserver ~]$ cp -r terracotta-2.7.2/* tc272-2/

删除tc272-2目录:

[godu@goduserver ~]$ rm -r tc272-2



Published

Sep 16, 2011

Last Updated

Sep 16, 2011

Category

Tech

Tags

  • gunzip 1
  • gzip 1
  • linux 158
  • shell 46
  • Solaris 4
  • tar 1

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor