linux tar命令运维实践

1、进入到目录的上一级目录打包(除非需要完整的目录结构才从根开始打)

2、gzip格式包:

   tar zcvf /路径/筐.tar.gz  苹果

   z---gzip格式压缩

   c---创建

   v---显示输出过程

   f---文件

   t---看包的内容

   p---保持属性

   例:tar tf /路径/筐.tar.gz


   bzip格式包:大家不要打这样的包,别人打打你会解包即可。

   j---bzip格式压缩

   tar jcvf /路径/筐.tar.bz  苹果

   解包:tar jxvf /路径/筐.tar.bz

3、排除打包两个参数

1
2
3
4
5
6
7
8
    a.--exclude
    例: tar  zcvf  /opt/oldboy1 . tar .gz . /oldboy  --exclude=oldboy /access_www_2014-08-01 .log
    b.--exclude-from == -X
     [root@oldboy /] # tar zcfX /opt/oldboy1.tar.gz  paichu.txt ./oldboy  
     [root@oldboy /] # cat paichu.txt 
     oldboy /access_www_2014-08-01 .log
     oldboy /access_www_2014-08-02 .log
     [root@oldboy /] # tar zcfX /opt/oldboy1.tar.gz  paichu.txt ./oldboy

4、解包

        -x 解包

        -C 指定路径

        tar xf /路径/筐.tar.gz -C /tmp/

        tar zxvf /路径/筐.tar.gz -C /tmp/


企业案例:把/etc/下所有名字为test.txt的普通文件打包

这里老男孩老师给出三种方法:

方法1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@oldboy /] # tar zcvf oldboy.tar.gz `find /oldboy -type f -name "test.txt"`
tar : 从成员名中删除开头的“/”
/oldboy/xiaofan/test .txt
/oldboy/ext/test .txt
/oldboy/test/test .txt
 
方法2:
[root@oldboy /] # find /oldboy -type f -name "test.txt"|xargs tar zcvf oldboy01.tar.gz
tar : 从成员名中删除开头的“/”
/oldboy/xiaofan/test .txt
/oldboy/ext/test .txt
/oldboy/test/test .txt
 
方法3:
[root@oldboy /] #find /oldboy -type f -name "test.txt" -exec tar zcvf oldboy.tar.gz {} \;
提示:如果你能不看答案也给出不低于3种方法,那么你就具备10K+的运维功底了。

查看:

1
2
[root@oldboy /] # tar tf oldboy01.tar.gz 
oldboy /xiaofan/test .txt

其他:针对链接文件的打包见空间博文

http://user.qzone.qq.com/49000448/blog/1435975688



Linux解压.tar .tgz .tar.gz .tar.Z等文件


.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

linux下tar命令解压到指定的目录 

tar xf bbs.tar.gz -C /zzz/bbs    

//把根目录下的bbs.tar.zip解压到/zzz/bbs下,前提要保证存在/zzz/bbs这个目录 

这个和cp命令有点不同,cp命令如果这个目录不存在,就会自动创建这个目录!

linux tar解压文件不要目录,可采用--strip-path 或--strip-components参数来实现。

参数详情:

--strip-components NUMBER, --strip-path NUMBER
  strip NUMBER of leading components from file names before extraction
  (1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-components

去除文件名前的NUMBER 层路径,如:

test.tar.gz中包含目录123/xxx/conf.xml,只要conf.xml文件,就要去除文件名前2层路径,命令为:

tar zxvf test.tar.gz  --strip-components 2      123/xxx/conf.xml

ls conf.xml    查看结果

#去除一层,命令为:

tar zxvf test.tar.gz  --strip-components 1      123/xxx/conf.xml

ls ./xxx/conf.xml   查看结果

实战2:assembly.tar.gz加压后的第一层目录不要,然后解压到/application/provider-cms/目录中,很常用

tar xf assembly.tar.gz --strip-components 1 -C /application/provider-cms/

---------------------------------------------

.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