现在的位置: 首页 > 综合 > 正文

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

2013年08月09日 ⁄ 综合 ⁄ 共 4948字 ⁄ 字号 评论关闭
文章目录

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

mkdir test 

进入到test目录

cd test 

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

cp /var/log/* .

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

du -sh 

打包所有,包括filelist和目录,即所有文件和文件夹都打包。

tar cvf logbackup.tar *

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

gzip logbackup.tar  

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

gunzip logbackup.tar.gz  

解压缩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

使用 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下。
mv logbackup.tar.bz2 ./test2/ 

2.拷贝test2目录下到logbackup.tar.bz2的当前目录。

cp /home/xuwei/test/test2/logbackup.tar.bz2 . 

3.使用bunzip2解压缩 logbackup.tar.bz2得到logbackup.tar,它到大小为9932800,和压缩前到文件大小一样,所以是无损压缩。

bunzip2 logbackup.tar.bz2 

4.对logbackup.tar解包,包中到文件就被释放到当前目录下,这时候logbackup.tar包依然存在。

tar xvf logbackup.tar 

5.删除当前目录下到所有文件。

rm *  

6.使用zip压缩所有文件。得到到logbak.zip大小为2142442。其实zip是两步走,即打包有压缩。

zip logbak.zip * 

7. 解压缩并且解包,zip也是无损压缩。

unzip logbak.zip

注意:

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

zip -r src.zip src/

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

如果使用命令

zip -r src.zip /home/hadoop/program/hadoop-0.20.1/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的上是共通的。

抱歉!评论已关闭.