首先介绍一下tar打包命令的基本格式,下面的三种之间不能混淆。

  tar [-j|-z] [cv] [-f 新文件名] file1 file2 ...;

  tar [-j|-z] [tv] [-f 新文件名]; <== 查看文件名

  tar [-j|-z] [xv] [-f 新文件名] [-C 目录]; <== 解包

  参数说明:

    -c:新建打包文件,搭配-v来查看过程中被打包的文件名

    -t:查看打包文件的内容包含哪些文件名

    -x:解包或解压缩功能。可搭配大写C来指定解压目录

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

    -j:通过bzip2 压缩/解压缩,推荐使用。

    -z:通过gzip压缩/解压缩。

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

    -f filename:

    -C 目录:指定解压目录


一、使用tar加入-j或者-z的参数备份:

  tar -jpcv -f /root/etc.tar.bz2  /etc;

  1、加入参数-p是为了保存原文件的权限和属性。

  2、默认保存的文件名没有根目录/,目的是为了安全。否则在解压缩的时候可能会覆盖其他文件。

二、查阅tar文件的数据内容(可查看文件名)及备份文件名有无根目录的意义:

  tar -jtv -f /root/etc.tar.bz2;

  1、可以看到显示的结果中,每个文件名都没有根目录/,这样还是为了安全起见。因为加了根目录表示的就是绝对路径,解压的时候就会出现覆盖的情况。

  2、如果确定非要添加根目录备份,使用-P(大写)参数,但是不建议这样做。

三、解压缩,并指定目录:

  tar -jxv -f /root/etc.tar.gz;

  tar -jxv -f /root/etc.tar.gz -C /tmp;

四、仅解压单一文件:

  tar -jtv -f /root/etc.tar.bz2 |grep 'shadow'; <== 查找,后续学习

  tar -jxt -f /root/etc.tar.bz2 etc/shadow;

  1、注意没有加-C参数。

  2、基本步骤是先找到要解压的文件,确定其文件名,这里为etc/shadow,没有根目录/.

五、打包某目录,但不含目录下的某些文件:

  tar -jcv -f /root/etc.tar.bz2 --exclude=/root/test* /root; <== --exclude用于指定排除的文件

  上面命令的意思是将/root目录下除了以test开头的其他所有文件打包。

六、仅备份比某个时刻还要新的文件:

  tar -jcv -f /root/etc.tar.bz2 --newer-mtime="2008/09/29" /etc/*;

七、特殊应用:暂不了解

  tar -cv -f - /etc | tar -xv -f -;

  暂时的理解是,上面执行了2个命令,一个命令用于打包,一个用于解包,都没有使用压缩命令。打包命令未指定目标文件,解包命令没有指定原文件,也或者是两者都指定为了-.

攻城狮在路上(叁)Linux(二十八)--- 打包命令:tar的更多相关文章

  1. 攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令

    前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2: ...

  2. 攻城狮在路上(叁)Linux(二十三)--- linux磁盘参数修改(设备代码、设备名)

    一.mknod:设置设备代码 linux中,所有的设备都是用文件来表示,文件通过major与minor数值来判断. major为主设备代码,minor为设备代码(需要查询),示例如下: /dev/hd ...

  3. 攻城狮在路上(叁)Linux(二十二)--- linux磁盘挂载与卸载 mount umount

    挂载就是将文件系统与目录结合的操作.挂载点就是目录,该目录就是进入分区或文件系统的入口. 一.挂载前的注意事项: 1.单一文件系统不应该被重复挂载在不同的挂载点中. 2.单一目录不应该重复挂载多个文件 ...

  4. 攻城狮在路上(叁)Linux(二十一)--- linux磁盘检查 fsck \ badblocks

    若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查.这一步是可选的,尽量少用. 使用前的建议:使用fsck命令时,被检查的分区务必不要挂载在系统上. 一.fsck: 命令格式:fsck [ ...

  5. 攻城狮在路上(叁)Linux(二十九)--- 完整备份工具:dump以及restore

    一.dump命令: 该命令既可以针对整个文件系统进行备份,也可以仅针对目录来备份.还可以指定不同的备份等级(-0~-9共10个等级). dump -W:列出在/etc/fstab中具有dump设置的分 ...

  6. 攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

    一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若bloc ...

  7. 攻城狮在路上(叁)Linux(二十五)--- linux内存交换空间(swap)的构建

    swap的功能是应付物理内存不足的状况,用硬盘来暂时放置内存中的信息. 对于一般主机,物理内存都差不多够用,所以也就不会用到swap,但是对于服务器而言,当遇到大量网络请求时或许就会用到. 当swap ...

  8. 攻城狮在路上(叁)Linux(二十四)--- linux设置开机挂载及镜像文件挂载

    虽然可以手动进行文件系统的挂载,但是每次都手动挂载就会很麻烦,开机挂载的目的就是实现文件系统的自动挂载. 一.开机挂载:/etc/fstab及/etc/mtab 主要是通过修改/etc/fstab文件 ...

  9. 攻城狮在路上(叁)Linux(二十)--- Linux磁盘格式化

    磁盘完成分区之后,进行格式化,生成文件系统. 命令格式: mkfs [-t 文件系统格式] 设备文件名  <== 使用 mkfs [Tab][Tab] 可以查看linux支持的文件系统格式 示例 ...

随机推荐

  1. js之序列化、eval和Date类用法

    序列化 JSON.stringify() 将对象转换为字符串 JSON.parse() 将字符串转换为对象类型 示例 var jsonStr = '{"name":"le ...

  2. 11.8---维护x的秩(CC150)

    思路:比较easy.就是借助hashset让他有序然后就能够比较节省时间了. 答案: public static int[] getRankOfNumber(int[] a, int n){ int[ ...

  3. OpenStack网络指导手册 -基本网络概念

    转自:http://blog.csdn.net/zztflyer/article/details/50441200 目录(?)[-] 以太网Ethernet 虚拟局域网VLANs 子网和地址解析协议S ...

  4. 【leetcode】Wildcard Matching

    Wildcard Matching Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any ...

  5. Java I/O模型的简单说明

    1.同步和异步 同步:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行,最简单的例子就是顺序的执行两个方法,当第 ...

  6. FastReport 使用说明

    FastReport TfrxReport 此为最主要的报表元件,一个 TfrxReport 元件组成一份报表.在设计时期,双击此 元件可打开报表设计器(Report Designer),此元件拥有所 ...

  7. TS初探

    简介 TypeScript具有类型系统,且是JavaScript的超集.它可以编译成普通的JavaScript代码. TypeScript支持任意浏览器,任意环境,任意系统并且是开源的.Ts主要用于解 ...

  8. MySQL 四种事务隔离级的说明

    很早之前写的文章,重新回顾和学习下: 按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ).MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔 ...

  9. Python 生产环境MySQL数据库增量备份脚本

    MySQL数据库常用的办法是通过MySQLdump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍文章介绍xtrabackup的热备工具,见 http://w ...

  10. Effective C++ -----条款22:将成员变量声明为private

    切记将成员变量声明为private.这可赋予客户访问数据的一致性.可细微划分访问控制.允诺约束条件获得保证,并提供class作者以充分的实现弹性. protected并不比public更具有封装性.