当前位置: > Linux命令 >

tar命令

时间:2015-01-18 01:51来源:linux.it.net.cn 作者:IT

tar是linux下很重要一个命令,可以进行对文件或者目录进行压缩,打包.
tar命令的参数非常多。我这里总结下常用的参数和一些组合应用技巧.
tar参数项与参数:

  • -c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
  • -t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
  • -x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
  • 特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
  • -j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
  • -z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
  • -v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
  • -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
  • -C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
  • –newer :一般用作备份,比什么文件新
  • –exclude: 除了什么文件或者目录不包含

其他后续练习会使用到的选项介绍:

  • -p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
  • -P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
  • –exclude=FILE:在压缩的过程中,不要将 FILE 打包!

 

 
1
2
3
4
5
6
7
8
tar -jcv -f backup.tar.bz2 ./ #把当前目录打包成backup.tar.bz2 ,j参数一般打包并且压缩成bz2各式
tar -zcv -f backup.tar.gz ./ #把当前目录打包成backup.tar.gz ,z参数一般打开并且压缩成gz各式
 
#如果只打包不压缩可以不加j或者z参数
tar -cv -f backup.tar ./ #将当前目录进行打包.(大小是各个文件的总和)
#下面是压缩和不压缩的对比
-rw-r--r--   1 zhuzhenyu  admin  18944  8 11 21:44 back.tar
-rw-r--r--   1 zhuzhenyu  admin   3866  8 11 21:45 back.tar.bz2

#查看包内容
查看bz2下面的包内容

 

 
1
2
3
4
5
6
7
8
9
10
11
tar -jtv -f backup.tar.bz2
~/workspace/vpn: tar -jtv -f ./back.tar.bz2
drwxr-xr-x  0 zhuzhenyu admin       0  8 11 21:45 ./
-rw-r--r--  0 zhuzhenyu admin     120  8  6 23:29 ./._.DS_Store
-rw-r--r--  0 zhuzhenyu admin    6148  8  6 23:29 ./.DS_Store
-rw-r--r--  0 zhuzhenyu admin   18944  8 11 21:44 ./back.tar
-rw-r--r--  0 zhuzhenyu staff     376  7 27 12:09 ./._centos6_pptpd.sh
-rw-r--r--  0 zhuzhenyu staff    1296  7 27 12:09 ./centos6_pptpd.sh
-rw-r--r--  0 zhuzhenyu admin    1267  7 30 01:47 ./index.html
-rw-r--r--  0 zhuzhenyu admin    1328  7 31 23:41 ./pp.py
-rw-r--r--  0 zhuzhenyu admin    1240  7 30 00:46 ./vpn.py

 

查看打包内容

1
2
3
4
5
6
7
8
tar -tv -f backup.tar
 
 
#解压缩
#解压缩到当前目录
tar -jxv -f backup.tar.bz2  
#解压缩到指定目录
tar -jxv -f backup.tar.bz2 -C /tmp

 

高级技巧
只解压包内的某一个文件
首先查看

 
1
2
3
4
5
6
7
8
9
10
tar -jtv -f backup.tar.bz2
~/workspace/vpn: tar -jtv -f ./back.tar.bz2
drwxr-xr-x  0 zhuzhenyu admin       0  8 11 21:45 ./
-rw-r--r--  0 zhuzhenyu admin     120  8  6 23:29 ./._.DS_Store
-rw-r--r--  0 zhuzhenyu admin    6148  8  6 23:29 ./.DS_Store
-rw-r--r--  0 zhuzhenyu admin   18944  8 11 21:44 ./back.tar
-rw-r--r--  0 zhuzhenyu staff     376  7 27 12:09 ./._centos6_pptpd.sh
-rw-r--r--  0 zhuzhenyu staff    1296  7 27 12:09 ./centos6_pptpd.sh
这里只解压缩centos6_pptpd.sh文件,
tar -jxv -f backup.tar.bz2 ./centos.pptpd.sh

 

打包一个文件除了某后缀或者某个子目录的不打包

 
1
2
#打包./order目录,除了order下面的modules不打包
tar -jcv -f backup.tar.bz2 --exclude=./order/models* ./order/

 

利用tar命令进行增量备份文件
–newer
–newer-ctime
–newer-mtime

打包比/etc/passwd新的/etc下文件

 
1
tar -jcv -f backup_new.tar.bz2 --newer-mtime='/etc/passwd' /etc


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容