大家好,农企新闻小编来为大家解答以上问题。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