农企新闻网

linux tar命令怎么使用(linux系统中tar命令的使用详解)

发布者:马龙东
导读大家好,农企新闻小编来为大家解答以上问题。linux tar命令怎么使用,linux系统中tar命令的使用详解很多人还不知道,现在让我们一起来看看吧!linux系统中tar命令的使用详解一、tar命令

大家好,农企新闻小编来为大家解答以上问题。linux tar命令怎么使用,linux系统中tar命令的使用详解很多人还不知道,现在让我们一起来看看吧!

linux系统中tar命令的使用详解

一、tar命令的用法

#压缩

tar -czvf ***.tar.gz

tar -cjvf ***.tar.bz2

#解压

tar -xzvf ***.tar.gz

tar -xjvf ***.tar.bz2

二、tar命令参数描述

-c:创建压缩文件的参数指令(意为创建);

-x:解锁一个压缩文件的参数命令!

-t:检查tarfile中的文件!

注意参数发布中只能存在一个c/x/t!不能同时存在!

因为压缩和解压是不可能同时进行的。

-z:你同时有gzip的属性吗?也就是需要gzip压缩吗?

-j:你同时拥有bzip2的属性吗?也就是需要用bzip2压缩吗?

-v:在压缩过程中显示文件!这是常用的,但不建议后台执行!

-f:请注意使用文件名,您应该在f之后立即收到文件名!没有更多的参数!

比如用“tar-zcvfp tfile sfile”就是错误的写法。应该写成

“tar-zcvpf tfile sfile”没错!

-p:使用原始文件的原始属性(该属性不会根据用户而改变)

-P:可以用绝对路径压缩!

-N:晚于以下日期(yyyy/mm/dd)的数据将被打包到新创建的文件中!

-排除文件:在压缩的过程中,不要打包文件!

三。tar命令用法示例

例1:将整个/etc目录下的所有文件打包到/tmp/etc.tar中。

[root @ Linux ~]# tar-CVF/tmp/etc . tar/etc==只打包,不压缩!

[root @ Linux ~]# tar-czvf/tmp/etc . tar . gz/etc==打包后用gzip压缩。

[root @ Linux ~]# tar-cjvf/tmp/etc . tar . bz2/etc==打包后用bzip2压缩。

#特别注意参数f后面的文件名是我们自己选的,我们习惯用。焦油作为身份证明。

#如果添加了z参数,则gzip压缩的tar文件由tar.gz或。tgz ~

#如果加上J参数,用tar.bz2作为文件名~

#当执行上述命令时,将显示一条警告消息:

# "tar3360从成员名称中删除前导`/'这是关于绝对路径的特殊设置。

例2:上面的/tmp/etc.tar.gz文件中有哪些文件?

[root @ Linux ~]# tar-tzvf/tmp/etc . tar . gz

#因为我们使用gzip压缩,所以当我们想查阅这个tar文件中的文件时,

#你得加上参数Z!这一点很重要!

例3:解压/usr/local/src下的/tmp/etc.tar.gz文件。

[root@linux ~]# cd /usr/local/src

[root @ Linux src]# tar-xzvf/tmp/etc . tar . gz

#默认情况下,我们可以在任何地方解锁压缩文件!在这个例子中,

#我先改一下/usr/local/src下的工作目录,解锁/tmp/etc.tar.gz,

#那么解锁的目录会在/usr/local/src/etc!另外,如果你去/usr/local/src/etc

#你会发现这个目录下的文件属性可能和/etc/!

例4:在/tmp下,我只想解锁/tmp/etc.tar.gz中的etc/passwd。

[root@linux ~]# cd /tmp

[root @ Linux tmp]# tar-xzvf/tmp/etc . tar . gz etc/passwd

#我可以通过tar -tzvf检查tarfile中的文件名。如果只有一个文件,

#可以这样发!注意!etc.tar.gz/is的根目录

  范例五:将 /etc/ 内的所有档案备份下来,并且保存其权限!

  [root@linux ~]# tar -czvpf /tmp/etc.tar.gz /etc

  # 这个 -p 的属性是很重要的,尤其是当您要保留原本档案的属性时!

  范例六:在 /home 当中,比 2005/06/01 新的档案才备份

  [root@linux ~]# tar -N '2005/06/01' -czvf home.tar.gz /home

  范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

  [root@linux ~]# tar --exclude /home/dmtsai -czvf myfile.tar.gz /home/* /etc

  范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生档案!

  [root@linux ~]# cd /tmp

  [root@linux tmp]# tar -cvf - /etc | tar -xvf -

  # 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

  # 要注意的地方在于输出档变成 - 而输入档也变成 - ,又有一个 | 存在~

  # 这分别代表 standard output, standard input 与管线命令啦!

  # 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

  ++++++++++++++++++++++++++++++++++++++++++++

  补充:tar如何解压文件到指定的目录

  tar czvf mysql.tar.gz /var/lib/mysql

  压缩的文件,我想解压到当前目录下,而不是绝对路径下,该如何解压?

  tar cxvf mysql.tar.gz 的话,会覆盖 /var/lib/mysql 下全部文件吧?我现在就一个表坏了,想单独恢复一个表的资料,而不是恢复全部数据库,所以要解压到指定的目录下,再把那个表资料找不来恢复。

  ============================================

  #tar zxvf mysql.tar.gz -C /home/aaa

  ============================================

  tar zxvf mysql.tar.gz -C /home/aaa

  这样的话,解压后的目录结构是怎么样的?

  /home/aaa/var/lib/mysql 吗?

  ============================================

  试下就知道了....

  ============================================

  归档里面的所有文件均是相对引用,归档解压缩(释放)在了当前目录。归档文件总是释放到当前目录,为的是防止破坏文件系统中重名的文件。

  所以,楼主的解压缩不会覆盖/var/lib/mysql,只会释放在当前目录先,即./var/lib/mysql如果想覆盖的话,在归档和解压时请使用-P参数:

  tar zcvf mysql.tar.gz -P /var/lib/mysql

  tar -Pzxvf mysql.tar.gz