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