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作为文件名~
#当执行上述命令时,将显示一条警告消息:
# "tar:从成员名中删除前导`/"这是关于绝对路径的特殊设置。
例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的根目录/已经被删除了!
例5:备份/etc/中的所有文件,并保存它们的权限!
[root @ Linux ~]# tar-czvpf/tmp/etc . tar . gz/etc
#这个-p的属性很重要,尤其是你想保留原文件的属性的时候!
示例6:在/home中,仅备份比2005/06/01更新的文件
[root @ Linux ~]# tar-N " 2005/06/01 "-czvf home.tar.gz/home
示例7:我想备份/home、/etc,但不想备份/home/DMS tsai。
[root @ Linux ~]# tar-exclude/home/DM tsai-czvf myfile.tar.gz/home/*/etc
例8:打包/etc/并直接在/tmp下解包,不生成文件!
[root@linux ~]# cd /tmp
[root @ Linux tmp]# tar-CVF-/etc | tar-xvf-
#这个动作有点像cp -r /etc /tmp ~还是有它的用处的!
#注意输出文件变成了-而输入文件变成了-,还有一个|存在~
#这分别代表标准输出、标准输入和管道命令!
#这部分我们会再次提到这个指令,用Bash shell给你解释!
新增:tar如何将文件解压到指定目录?
tar czvf mysql.tar.gz
压缩文件,我想把它们解压到当前目录而不是绝对路径。我如何提取它们?
tarcxvf 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 zcff mysql.tar.gz-P/var/lib/MySQL
tar-Pzxvf mysql.tar.gz
本文到此结束,希望对大家有所帮助。
相关文章
刚刚,华为官宣:华为Mate60Pro+ 华为MateX5正式开启预订!有这几款配置,速看......
刚刚,华为手机官宣:今天,华为Mate60Pro+、华为MateX5加入先锋计划,