Chinaunix首页 | 论坛 | 博客
  • 博客访问: 783034
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-08 20:18:43

linux打包命令:tar
#tar [-j|-z] [cv] [-f 新建的文件名] filename...        ==>打包与压缩
#tar [-j|-z] [tv] [-f 新建的文件名] ==>查看文件名
#tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]  ==>解压缩
  -c:新建打包文件,可搭配-v来查看过程中被打包的文件名
  -t:查看打包文件的内容含有哪些文件名,重点在查看文件名
  -x:解打包或解压缩的功能,可以搭配-C在特定目录解开。-c,-t,-x不能同时出现。
  -j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2.
  -z:通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz
  -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
  -f filename:-f后面接要被处理的文件名。建议-f单独写一个参数。
  -C 目录:这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数。
  -p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件。
  -P:保留绝对路径,即允许备份数据中含有根目录存在之意。
  --exclude=FILE:在压缩的过程中,不要将FILE打包。

其实,最常用的就是下面几个,记住就好:
压缩  :tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查询  :tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
                     filename要自己取,系统不会自动产生。

例子:
    #tar -jpcv -f /root/etc.tar.bz2 /etc ==>备份
    #ll /root/etc*
    #du -sm /etc

    #tar -jtv -f /root/etc.tar.bz2 ==>查询

  备份时一般不加根目录,因为没有去掉根目录,解压缩后的文件名就会是绝对路径。如此一来,你的原本的/etc/下面的数据就会被覆盖了。
  如果你确定要备份 “/” 到tar的文件中,可以使用 -P参数。

    #tar -jxv -f /root/etc.tar.bz2 ==>解压到当前目录
    #tar -jxv -f /root/etc.tar.bz2 -C /tmp ==>用-C指定解压缩的目录


仅解开单一文件的方法
  如果只想解开打包文件内的其中一个文件,只要使用 -jtv 找到你要的文件名,然后将该文件名解开即可。
  #tar -jtv -f /root/etc.tar.bz2 |grep 'shadow' ==>找出我们要的文件
  #tar -jxv -f 打包文件.tar.bz2 待解开的文件名
  #tar -jxv -f /root/etc.tar.bz2 etc/shadow


打包某目录,但不含该目录下的某些文件的方法
  目录下的某些文件我们不想打包时,可以通过 --exclude 来排除。
  #tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root


仅备份比某个时刻还要新的文件
  用 --newer 或 --newer-mtime,--newer 表示后续的日期包含 mtime 与 ctime。
  #find /etc --newer /etc/passwd           ==>找出比/etc/passwd还要新的文件
  #tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2008/09/29" /etc/*

显示tar.bz2内结尾非 / 的文件名
#tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 |grep -v '/$'
  

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