tar指令的常见用法

用法:tar[选项...][FILE]...

  选项与参数:

-c:建立打包档案,可搭配-v来查看文件中被打包的档名(filename)

-x:解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开

-t:查看打包档案的内容含有哪些档名,重点在查看『档名』就是了

特别留意的是,-c,-t, -x不可同时出现在一串指令列中。

-j:透过bzip2的支持进行压缩/解压缩:此时档名最好为*.tar.bz2

-z:透过gzip的支持进行压缩/解压缩:此时档名最好为*.tar.gz

-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来!

-ffilename: -f后面要立刻接要被处理的档名!建议-f单独写一个选项啰!

-C目录: 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

-P:保留绝对路径,亦即允许备份数据中含有根目录存在之意

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

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

范例:

1、将/etc目录下的所有文件全部打包到/tmp目录中

tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩

tar -jcvf /tmp/etc.tar.bz2 /etc <==以bzip2压缩后打包

tar-zcvf /tmp/etc.tar.gz /etc <==以gzip压缩后打包

#只使用tar打包的文件我们称之为tarfile,如果还有压缩的操作,就叫它tarball

#一般来说tar之后的选项顺序是可以颠倒的,但是-f一定要放到最后,即tar-jcvf或者tar-jvcf可以,tar-jvfc就不行了

#如果加j参数,文件名就是*.tar.bz2;如果是加z参数,文件名就是*.tar.gz或者*.tgz

#压缩时第一行会显示『tar:Removing leading `/' from membernames』信息,意思是压缩打包的每个文件都被拿掉了根目录,那是为了防止将来解压缩的时候覆盖原来的文件,加上选项-P就可以保留绝对路径,不过一般不介意这么做

#使用bzip2压缩时压缩比更大些

2、显示/tmp/etc.tar.bz2内有哪些文件?

tar -jtvf /tmp/etc.tar.bz2

#由于文件是.tar.bz2格式所以选项就加上j喽

3、在/usr目录下解压缩/tmp/etc.tar.bz2文件

首先cd/usr进入/usr目录下,再tar-jxvf /tmp/etc.tar.bz2解压缩即可;

或者直接tar-jxvf /tmp/etc.tar.bz2 -C /usr

#-C命令后加上目录表示在该目录下解压缩文件

4、仅解开单一档案,例如只需要把/tmp/etc.tar.bz2内的etc/passwd解压开

首先可以使用tar-jtf /tmp/etc.tar.bz2 | grep 'passwd'查找到所需要的文档

再使用tar-jxvf/tmp/etc.tar.bz2 etc/passwd解压即可

#grep'passwd'是撷取关键词操作

#‘|’是管道操作

5、打包/etc/root目录,但是不包含某些目录

tar -jcvf /tmp/etc.tar.bz2 --exclude=file1–exclude=file2 /etc/root

#--exclude=file表示不包含的意思

6、在/etc目录下比‘2012/04/05’新的档案才会备份

tar-N '2012/04/05' -jcvf /tmp/etc.tar.bz2/etc

7、将/etc整个目录一边打包一边在/tmp解压,不产生文件

cd/tmp<==进入/tmp目录

tar-cvf - /etc | tar -xvf -

#这个动作有点像是cp-r /etc /tmp啦~依旧是有其有用途的!
#要注意的地方在于输出档变成-而输入档也变成-,又有一个|存在~
#这分别代表standardoutput, standard input与管线命令啦!

#简单的想法中,你可以将-想成是在内存中的一个装置(缓冲区)。

你可能感兴趣的:(linux,运维,服务器)