ubuntu-基本命令篇-18-压缩包管理

18.压缩包管理

1.常用的压缩命令

.tar    tar c v f x z j。c=create,f=file,z=zip,v=visible
.gz     gzip,gunzip
.bz2    bzip2,bunzip2
.gz和.bz2类是,就是压缩率不同,.bz2压缩率高。
.zip    zip,unzip
.rar    rar a,rar x
7z    7z
.Z    compress,uncompress
现在.gz和.Z等价。.tar能将多个文件生成一个文件,文件的尺寸不会有太大变化。这时候再用gzip再对大文件的.tar进行压缩,最后生成的文件名一般为.tar.gz,比如eclipse-SDK-3.5.2-linux-gtk.tar.gz。.tar.gz文件比.gz文件要小很多。

2.压缩包的概念

1.打包,将多个文件打包成一个文件,比如tar
2.压缩,将大尺寸的数据压缩成小尺寸的数据。比如gz
有损压缩:压缩完后解压的文件与压缩之前的文件不一样,压缩率比较高,音频和视频到压缩一般都是使用有损压缩,比如mp3,jpeg也是有损压缩。
无损压缩:压缩完后解压缩的文件与压缩前的一样。一般重要的文档都是使用无损压缩。保证数据的一致性。压缩率比较低,
注意:linux中没有文件后缀到说法。但是.tar,.gz 是约定成俗到

创建目录test

进入到test目录

拷贝/var/log/中到所有文件和文件夹到当前test目录:

其中 “.“就表示当前目录,“*”就表示目录下到所有文件。
查看当前目录大小

打包所有,包括filelist和目录,即所有文件和文件夹都打包。
上述命令表示将当前目录的所有文件打包成一个logbackup.tar的文件。
然后 压缩文件夹 logbackup.tar ,这时候会生成logbackup.tar.gz,而原来到logbackup.tar就被替代了。

我们通过 ls -l 命令可以发现
logbackup.tar 的大小是9932800,而经过gzip压缩后的logbackup.tar.gz大小是2130506,大小有明显减小。

解压缩logbackup.tar.gz文件,这时候我们发现logbackup.tar.gz文件已经不再,而logbackup.tar文件有重新生成,他的大小是9932800,压缩后再解压缩得到的文件和压缩前一样大小,这是无损压缩。

ls -lh logbackup.tar ls -l logbackup.tar的不同之处在于使用
ls -lh 得到的文件信息大小是以MB为单位到,而ls -l 得到的文件信息是以字节为单位。

使用 bzip2方式压缩文件logbackup.tar,得到logbackup.tar.bz2,它的大小是1480419,比logbackup.tar.gz文件的2130506要小,这表明bzip2的压缩率比gzip的压缩率要大

tar xvf logbackup.tar       解压缩.tar包。

tar xvfj logbackup.tar.bz2      命令会先用命令 bunzip2 logbackup.tar.bz2 加压所.gz文件到logbackup.tar,然后再使用tar xvf logbackup.tar 解包,这时候解包出来到文件会覆盖原来到文件。logbackup.tar.bz2 依然存在,但是不产生logbackup.tar。

mkdir test2 在当前目录下创建目录test2

1.将当前目录下到logbackup.tar.bz2移动到刚创建到目录test2下。
2.拷贝test2目录下到logbackup.tar.bz2的当前目录。
3.使用bunzip2解压缩 logbackup.tar.bz2得到logbackup.tar,它到大小为9932800,和压缩前到文件大小一样,所以是无损压缩。
4.对logbackup.tar解包,包中到文件就被释放到当前目录下,这时候logbackup.tar包依然存在。
5.删除当前目录下到所有文件。
6.使用zip压缩所有文件。得到到logbak.zip大小为2142442。其实zip是两步走,即打包有压缩。
7. 解压缩并且解包,zip也是无损压缩。

注意:

如果要压缩一个目录,那么可以使用如下命令:

这样就将创建一个一个src目录的zip压缩包。压缩包的层次为:src.zip->src->...

如果使用命令

那么那所包的层次是:src.zip->home/hadoop/program/hadoop-0.20.1/src/...

rar a 打包
rar x 解包
rar a logbak.rar * 打包并压缩当前目录下到所有文件并生成压缩包logbak.rar。
生成到logbak.rar的大小是1426409。
rar x logbak.rar 解压缩logbak.rar。无损压缩。

tar cvf package.tar firelist folderlist/*,*表示全部。

相关转载:http://remindme.blogbus.com/logs/25006959.html

ubuntu 解压 打包 命令全集

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
.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
---------------------------------------------
.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
---------------------------------------------
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

rar请到:http://www.rarsoft.com/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar

---------------------------------------------
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!
>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp lha /usr/bin/

---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!
sEx请到: http://sourceforge.net/projects/sex下载!
解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp sEx /usr/bin/
 
解压后编译:
sudo ./configure
make
make install
 
当然,编译的时候必须要以root 用户,而解压的时候不一定,普通用户就何以。以上是常用的命令,一下是不常用的命令,在这里提下,给兄弟们一个映象,到时候能看懂就可以了。
 
方法二:
sudo ./configure --prefix=/路径
make ; make install

方法三:
sudo ./configure --enable-static-link \
--prefix=$XXX/static --with-curses &&
make &&
make install

命令解释

--enable-static-link: 这个配置命令使bash被静态链接。

--prefix=$XXX/static:这个配置命令把Bash的所有文件安装到$XXX/static目录下,这个目录在chroot环境下或在最终的XXX系统中将成为 /static 目录。(XXX为用户)

--with-curses: 将bash链接到某一个库,正如LFS系统将它指向static这一个库。

其实静态链接的bash并不一定要链接到libncurses (也可以暂时链接到静态的termcap )但在LFS中不能这样做(关于LFS的方法可访问相关网站,此问题不在这一范围内)。

每行最后的&&用处很大,它使后一个命令仅在前一个命令返回值为0(表示正确执行)的情况下才执行。在所有的命令都是拷贝 &粘贴的情况下,我们必须保证如果./configure出错,make就不执行,同样地,如果 make 出错,make install就不执行,诸如此类。

以上方法三是构建LFS(linux from scratch 从网上直接下载源代码,从头编写程序的方式)系统并编译软件的重要方法之一,事实上Linux系统包括在Unix系统中在cmd的上是共通的。

posted @ 2010-08-13 09:31  xwdreamer  阅读(7092)  评论(0编辑  收藏  举报