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) |