tar打包命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tar打包命令相关的知识,希望对你有一定的参考价值。
Tar命令用于将多个文件或者目录打包成一个打的文件。同时还可以通过gzip/bzip2的支持,将该文件进行压缩。Window中winrar也可以解压tar.gz文件。
语法:(只讲解几个常用的参数)
打包压缩:
Tar [-j|-z][cv] [-f 新建的文件名] 被打包文件名/目录
打包压缩(排除不想打包的文件或者目录):
Tar[-j|-z] [cv] [-f 新建的文件名] --exclude=不想打包的目录或文件名 被打包文件名/目录
只打包目录中比某时刻新的文件:
Tar[-j|-z] [cv] [-f 新建的文件名] –newer-mtime=”2017/08/15” 被打包的文件名/目录
查看文件名:
Tar[-j|-z] [tv] [-f 新建的文件名]
解压:
Tar[-j|-z] [xv] [-f 新建的文件名] [ -C 指定的解压目录]
单独解压包中的某个文件:
Tar[-j|-z] [xv] [-f 打包文件.tar.gz|打包文件.tar.bz2] 待解压文件名
-j:通过bzip2支持进行压缩/解压,文件后缀名最好为:tar.bz2。
-z: 通过gzip支持进行压缩/解压,文件后缀名最好为:tar.gz。
特殊用法:(将待处理文件一边打包一边解压缩到目标目录中)
Tar [-cv] [-f 新建的文件名] 被打包的文件名/目录 | tar [-xv][-f 新建的文件名]
实例:
打包压缩:
[[email protected] ~]# tar -zcp -f/root/etc.tar.gz /etc tar: Removing leading `/‘ from member names [[email protected] ~]#
去除某目录下不想打包的文件或目录:
[[email protected] ~]# tar -zc -f/root/system.tar.gz --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc/root tar: Removing leading `/‘ from member names tar: /root/system.tar.gz: file changed aswe read it [[email protected] ~]# ll system* -rw-r--r--. 1 root root 18985797 Aug 2100:02 system.tar.bz2 -rw-r--r--. 1 root root 41838107 Aug 2100:04 system.tar.gz [[email protected] ~]# tar -jtv -f/root/system.tar.bz2 | grep ‘root/etc‘ [[email protected] ~]#
只打包目录中比某时刻新的文件:
[[email protected] ~]# tar -zc -f/root/etcnewer.tar.gz --newer-mtime=‘2017/08/15‘ /etc/* tar: Removing leading `/‘ from member names [[email protected] ~]# ll etc* -rw-r--r--. 1 root root 73144 Aug 21 00:11etcnewer.tar.bz2 -rw-r--r--. 1 root root 86501 Aug 21 00:12etcnewer.tar.gz [[email protected] ~]# tar -ztv -f /root/etcnewer.tar.gz |head -n 3 drwxr-xr-x root/root 0 2017-07-19 09:30 etc/abrt/ drwxr-xr-x root/root 0 2017-07-19 09:30 etc/abrt/plugins/ drwxr-xr-x root/root 0 2017-07-19 09:35 etc/acpi/
查找包中的文件:
查看包中前3个文件名
[[email protected] ~]# tar -ztv -f/root/etc.tar.gz |head -n 3 drwxr-xr-x root/root 0 2017-08-20 22:51 etc/ drwxr-xr-x root/root 0 2017-07-19 09:30 etc/ghostscript/ drwxr-xr-x root/root 0 2017-07-19 09:30etc/ghostscript/8.70/
管道符号后接grep 指定搜索文件
[[email protected] ~]# tar -jtv -f/root/etc.tar.bz2 | grep ‘shadow‘ ---------- root/root 820 2017-07-19 09:39 etc/shadow- ---------- root/root 622 2017-07-19 09:39 etc/gshadow- ---------- root/root 632 2017-07-19 10:04 etc/gshadow ---------- root/root 841 2017-07-19 10:04 etc/shadow
单独解压包中的某个文件:
[[email protected] whx]# tar -jxv -f/root/etc.tar.bz2 etc/shadow etc/shadow [[email protected] whx]# ll total 12 drwxr-xr-x. 2 root root 4096 Aug 20 23:59etc -rw-r--r--. 1 root root 30 Aug 17 23:44 xx01.gz -rw-r--r--. 1 root root 30 Aug 17 23:45 xx02.gz [[email protected] whx]# ll etc total 4 ----------. 1 root root 841 Jul 19 10:04shadow
解压整个包:
[[email protected]~]# tar -jx -f /root/etc.tar.bz2 -C /root/whx1 [[email protected] ~]# [[email protected] whx1]# ll total 12 drwxr-xr-x. 113 root root 12288 Aug 20 22:51 etc
特殊用法:(将待处理文件一边打包一边解压缩到目标目录tmp中)
[[email protected] tmp]# tar -cf xx /etc | tar -xf xx tar: Removing leading `/‘ from member names [[email protected] tmp]# ll xx* -rw-r--r--. 1 root root 38696960 Aug 2100:26 xx
tar除了能将多个文件或目录打包成大文件之外,还能够打包到某些特别的设备中,例如将文件打包到一次性读取/写入的设备磁带机中,tar -cv -f /dev/st0 /home /root/etc。由于不能使用cp命令来复制文件到磁带机这类设备中,此时利用tar命令将文件打包到磁带机是很好的选择。
小知识:tarfile指利用tar命令打包但没有进行压缩的文件,tarball是指利用tar命令打包并压缩的文件。
本文出自 “天黑顺路” 博客,请务必保留此出处http://mjal01.blog.51cto.com/12140495/1958056
以上是关于tar打包命令的主要内容,如果未能解决你的问题,请参考以下文章