tar
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
gz命令
解压1:gunzip filename.gz
解压2:gzip -d filename.gz
压缩:gzip filename
.tar.gz 和 .tgz
解压:tar zxvf filename.tar.gz
压缩:tar zcvf filename.tar.gz dirname
压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2
解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname
bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
.tar.bz
解压:tar jxvf filename.tar.bz
z命令
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
zip命令
解压:unzip filename.zip
压缩:zip filename.zip dirname
.tar
解包:tar xvf FileName.tar 解包后原始文件仍存在
打包:tar cvf FileName.tar DirName1 Filename1 …
列出内容:tar tvf FileName.tar
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz 解包后原始文件消失
解压2:gzip -d FileName.gz 解包后原始文件消失
压缩:gzip FileName(只能对单一文件压缩)
列出内容:gzip -l 5314-GZ-1.gz
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz 解包后原始文件仍存在
压缩:tar zcvf FileName.tar.gz DirName
列出内容:tar tvf FileName.tar.gz gzip -l 5314-GZ-1.gz
———————————————
.bz2
解压1:bzip2 -d FileName.bz2 解包后原始文件消失
解压2:bunzip2 FileName.bz2 解包后原始文件消失
压缩: bzip2 -z FileName
列出内容:bzcat FileName.bz2 | wc -c
.tar.bz2
解压:tar jxvf FileName.tar.bz2 解包后原始文件仍存在
压缩:tar jcvf FileName.tar.bz2 DirName
列出内容:bzcat FileName.tar.bz2 | wc -c
———————————————
.bz
解压1:bzip2 -d FileName.bz 解包后原始文件消失
解压2:bunzip2 FileName.bz 解包后原始文件消失
压缩:未知
列出内容:bzcat FileName.bz | wc -c
.tar.bz
解压:tar jxvf FileName.tar.bz 解包后原始文件仍存在
压缩:未知
列出内容:bzcat FileName.tar.bz | wc –c tar tvf test.tar.bz
———————————————
.Z
解压:uncompress FileName.Z 解包后原始文件消失
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.xz
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip 解包后原始文件仍存在
压缩:zip FileName.zip DirName
列出内容:unzip –l FileName.zip
———————————————
.rar
解压:rar x FileName.rar 解包后原始文件仍存在
压缩:rar a FileName.rar DirName
列出内容:unrar –t FileName.rar
———————————————
总结:gzip、bzip2、uncompress等命令均会改变原文件,而tar、unzip、unrar等命令则不会改变原始文件,压缩文件类似于.tar[.gz/bz/bz2/Z]均可用tar命令操作,而filename.gz/bz/bz2/Z等格式则只能用对应的gzip、bzip2、uncompress等命令操作。
补充:
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
常用的格式有:
tar, tar.gz(tgz), tar.bz2,
不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大。
1. tar
只是打包动作,相当于归档处理,不做压缩;解压也一样,只是把归档文件释放出来。
(1)打包归档格式:
tar -cvf examples.tar files|dir
#说明:
-c, --create create a new archive 创建一个归档文件
-v, --verbose verbosely list files processed 显示创建归档文件的进程
-f, --file=ARCHIVE use archive file or device ARCHIVE 后面要立刻接被处理的档案名,比如--file=examples.tar
#举例:
tar -cvf file.tar file1 #file1文件
tar -cvf file.tar file1 file2 #file1,file2文件
tar -cvf file.tar dir #dir目录
(2)释放解压格式:
tar -xvf examples.tar (解压至当前目录下)
tar -xvf examples.tar -C /path (/path 解压至其它路径)
#说明:
-x, --extract, extract files from an archive 从一个归档文件中提取文件
#举例:
tar -xvf file.tar
tar -xvf file.tar -C /temp #解压到temp目录下
2. tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理)
这种格式是Linux下使用非常普遍的一种压缩方式,
兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率)
其实这是对tar包进行gzip算法的压缩
(1)打包压缩格式:
tar -zcvf examples.tgz examples (examples当前执行路径下的目录)
说明:
-z, --gzip filter the archive through gzip 通过gzip压缩的形式对文件进行归档
举例:
tar -zcvf file.tgz dir #dir目录
(2)释放解压格式:
tar -zxvf examples.tar (解压至当前执行目录下)
tar -zxvf examples.tar -C /path (/path 解压至其它路径)
举例:
tar -zcvf file.tgz
tar -zcvf file.tgz -C /temp
3 tar.bz
Linux下压缩比率较tgz大,即压缩后占用更小的空间,使得压缩包看起来更小。
但同时在压缩,解压的过程却是非常耗费CPU时间。
(1)打包压缩格式:
tar -jcvf examples.tar.bz2 examples (examples为当前执行路径下的目录)
说明:
-j, --bzip2 filter the archive through bzip2 通过bzip2压缩的形式对文件进行归档
举例:
tar -jcvf file.tar.bz2 dir #dir目录
(2)释放解压:
tar -jxvf examples.tar.bz2 (解压至当前执行目录下)
tar -jxvf examples.tar.bz2 -C /path (/path 解压至其它路径)
举例:
tar -jxvf file.tar.bz2
tar -jxvf file.tar.bz2 -C /temp
4 gz
压缩:
gzip -d examples.gz examples
解压:
gunzip examples.gz
5 zip
zip 格式是开放且免费的,所以广泛使用在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很高,不如 rar及 tar.gz 等格式。
压缩:
zip -r examples.zip examples (examples为目录)
解压:
zip examples.zip
6 .rar
压缩:
rar -a examples.rar examples
解压:
rar -x examples.rar
压缩比率,占用时间对比
为了保证能够让压缩比率较为明显,需选取一个内容较多、占用空间较大的目录作为本次实验的测试。
找了一个大概有23G的目录来测试,首先要明确由于执行环境的变化,误差在所难免
首先明确一个概念:
压缩比率=原内容大小/压缩后大小,压缩比率越大,则表明压缩后占用空间的压缩包越小
.tar
打包:
time tar -cvf test.tar /usr/test
时间:
real 3m20.709s
user 0m3.477s
sys 0m42.595s
大小:
打包前:23214680
打包后:22202984
耗时:3m20.709s
压缩比率:22202984/23214680
解压:
time tar -xvf test.tar
大小:
解压前:22202984
解压后:23211064
耗时:
real 2m47.548s
user 0m4.999s
sys 1m14.186s
.tgz
打包压缩:
time tar -zcvf test.tgz /usr/test
时间:
real 16m30.767s
user 16m1.394s
sys 1m7.391s
大小:
打包前:23211064
打包后:18949032
耗时:
压缩比率:
解压:
tar -zxvf test.tar
大小:
解压前:18949032
解压后:23211064
耗时:
real 3m52.418s
user 2m46.325s
sys 1m21.442s
.tar.bz2
打包压缩:
time tar -jcvf test.tar.bz2 /usr/test
时间:
real 80m39.422s
user 80m14.599s
sys 0m58.623s
大小:
打包前:23211064
打包后:18728904
耗时:80m39.422s
压缩比率:
解压:
time tar -jxvf test.tar.bz2
时间:
real 27m54.525s
user 27m44.108s
sys 1m43.645s
大小:
解压前:18728904
解压后:23211064
综上结果,初步结论:
综合起来,在压缩比率上: tar.bz2>tgz>tar
占用空间与压缩比率成反比: tar.bz2<tgz<tar
耗费时间(打包,解压)
打包:tar.bz2>tgz>tar
解压: tar.bz2>tar>tgz
从效率角度来说,当然是耗费时间越短越好
因此,Linux下对于占用空间与耗费时间的折衷多选用tgz格式,不仅压缩率较高,而且打包、解压的时间都较为快速,是较为理想的选择。
结论:
再一次印证了物理空间与时间的矛盾(想占用更小的空间,得到高压缩比率,肯定要牺牲较长的时间;反之,如果时间较为宝贵,要求快速,那么所得的压缩比率一定较小,当然会占用更大的空间了)
.tar.zst 格式 (需安装zstd,下载程序包含直接make)
解压:tar -I zstd -xvf xxx.tar.zst
压缩:不知道怎么搞
openmpi,默认路径:/usr/local/lib
./configure -prefix=/home/.......
make all install