Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30001232
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-05-17 14:34:05

linux中的tar命令详解

(整理时间:2010-5-17)

命令格式为:

tar   [-cxtzjvfpPN]  文件与目录

参数含义说明:

-c           建立一个压缩文件的参数指令(create 的含义)

-x           解开一个压缩文件的参数指令

-t            查看tarfile里面的文件

特别注意:以上三个参数中只能存在一个!不可以同时存在。

心得:做压缩操作就用-c做解压缩操作就用-x

-z           表示是否同时具有gzip的属性。即是否需要用到gzip压缩

-j            是否同时具有bzip2的属性。即是否需要用到bzip2 压缩

-v           压缩过程中是否显示文件。

-f            使用档名。在f 之后要马上接档名。这中间不可再加其它参数

例如:tar –zcvfP tfile sfile    错误的正确的写法应当是:tar –zcvPf  tfile sfile

-p           使用原文件的原来属性(属性不会依据使用者而变化)

-P           可以使用绝对路径来压缩!

-N          比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:      在压缩的过程中,不要将FILE打包!

 

范例:

示例1.  /www/client目录下的文件全部打包成到 /www/copy/client.tar

操作一: tar  -cvf  /www/client.tar /www/client      表示仅打包,不压缩

操作二: tar –zcvf  /www/client.tar.gz  /www/client           表示以gzip方式压缩并打包

操作三: tar –jcvf  /www/client.tar.bz2 /www/client             表示以bzip2压缩打包

 

笔记:我们一般使用压缩的办法就是

操作二: tar –zcvf  /www/client.tar.gz  /www/client          表示以gzip方式压缩并打包

请注意后缀名的变化。如果是采用了gzip 压缩的方式就建议使用tar.gz的方式!

 

 

示例二:查阅一个TAR文件里面有哪些文件。

tar   -ztvf              /www/clinet.tar.gz         看一下参数中用到了  t 表示查看归档文件的内容

 

示例三:解压缩文件处理

/www/client.tar.gz 解压缩到/usr/local/src目录下面

#cd /usr/local/src

#tar -zxvf /www/client.tar.gz

 

示例四:将 /etc/ 内的所有文件备份下来,并且保存其权限!

#tar –zxvpf  /tmp/etc.tar.gz  /etc

注意:这里面我们带了一个参数选项 p 表示的是保存原有的属性

 

 

示例五:在/home当中,比2005/06/01 的文件才备份

#tar –N “2005/06/01” –zcvf    /home

带上这个选项 –N  就表示比指定的时间更新的才会进行备份压缩处理!

 

示例六:我要备份/home, /etc 但不要 /home/dmtsail

命令如下:

#tar  -exclude  /home/dmtsail  -zcvf myfile.tar.gz   /home/* /etc

 

添加一个选项就可以实现!


补充一下:

2010-09-07补充进来的

unzip [-选项] [文件名.zip] [文件名]

将 .zip 压缩文件解压

  zip 和 unzip这组程序真正是一对搭档。zip 程序本身没有解压能力,一定要用unzip 程序来解压才行。unzip 是一个真正的程序,并不是 zip 的替身。

  因为 zip 程序会把一大堆文件压缩在一起,而解压时,有可能这一大堆文件的其中一些已经存在了(如果都不存在,当然很简单),于是产生了一些错综复杂、纠葛缠绵的解 压情况,您要有心里准备!例如,我们要把这些已经存在的文件通通无条件地覆盖过去呢,还是只有把比它新才覆盖过去?或者无论新旧,只有不存在的文件才压缩 加上去,还是每次遇到已有文件存在时,都要询问我,由我来决定?所谓已经存在,是用 UNIX 的判别法则,还是 DOS 的判别法则?也就是说,如果压缩文件里有一个大写的MYFILE,它和现有的小写myfile算同名文件,还是算不同名文件?

  还有,因为 zip可以把整个子目录压缩起来,那么解压缩的时候,又会遇到无可避免的抉择情况:您是要解压回与原来目录一样的位置,还是在现有目录上解压并产生目录?

  因为上面情况太复杂了,所以我们只列一道范例命令,然后其他都直接列出选项了:

  unzip onepackage.zip a*.doc

  把 onepackage.zip 里面凡是 a*.doc 的都解压出来。如果 a*.doc文件名没有输入,就会把onepackage.zip 全部解压。但是最好配合下面的选项,决定您遇到现有相同文件名时的8个处理决策:

  -f 只解压更新已存在的文件,其他文件不解压(但更新时会一一询问)。

  -u 解压更新已存在的文件,并把不存在的文件也解压(但更新时会一一询问)。

  -fo 只解压更新已存在的文件,其他文件不解压(但不询问直接覆盖更新)。

  -uo 解压更新已存在的文件,并把不存在的文件也解压(但不询问直接覆盖更新)。

  -o 不论文件是新是旧,一律从压缩文件中解压,并直接覆盖。

  -n 只把不存在的文件解压,已存在的文件则无论新旧一律保留原状。

  -C 不计较大小写的不同,视为相同文件名(默认是视为不同)。

  -L 解压时一律将文件名转为小写。

  还有,遇到有子目录时的处理决策:

  -j 不管原来压缩时的目录为何,均全部解开于现行目录。

  -d 后面接一个目录名称。可以指定解压到该目录。

  一个其他的常用选项:

  -l 只列出压缩包里面有哪些文件,而不真的解开压缩。

 我的命令如下:

unzip net-snmp-5.6.pre3.zip -d  netsnmp

将我的压缩文件解压缩到指定的目录下面去。



 

 

 

阅读(989) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

hkebao2010-06-28 10:13:13

tar -zcvf tian_S.sql.tar.gz tian_S.sql 压缩一个文件

chinaunix网友2010-06-28 10:07:22

从现在开始努力培养起来核心竞争力!与行业开发经验!

chinaunix网友2010-05-18 09:36:27

解压缩一个bz2的文件 tar xjf pcre-6.6.tar.bz2