使用tar命令可以将许多文件一起保存进行归档和压缩,并能从归档和压缩中单独还原所需文件。
打包或解包文件tar
tar命令用于将文件打包或解包,扩展名一般为“.tar”,指定特定参数可以调用gzip或bzip2制作压缩包或解开压缩包,扩展名为“tar.gz”或“.tar.bz2”。
tar命令相关的包一般使用.tar作为文件名标识。如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar。
格式:
归档:tar[选项c...]归档文件名 源文件或目标
释放:tar[选项x...]归档文件名 [-C 目标目录]
常用选项:
-c 创建.tar格式的包文件
-x 解开.tar格式的包文件
-v 输出详细信息
-f 表示使用归档文件(后面需紧跟归档文件名)
-p 打包时保留原始文件及目录的权限(不建议使用)
-t 列表查看包内的文件
-C 解包时指定释放的目标目录
-z 调用gzip程序进行压缩或解压
-j 调用bzip2程序进行压缩或解压
-A 追加 tar文件至归档
-r 追加文件至归档结尾
-u 追加比归档中副本更新的文件
-k 保存已经存在的文件。在还原文件时遇到相同的文件时,不会进行覆盖
-m 在还原文件时,把所有文件的修改时间设定为现在
-M 创建多卷的归档文件,以便在几个磁盘中存放
-w 每一步操作都要求确认
-J 通过xz过滤归档
-a 使用归档后缀名来决定压缩程序
注意:tar命令的选项前可以省略“-”,在解压时无需选择“-z”或“-j”,命令可以自行识别。
例如:
查看/root/abc.tar归档文件的内容。
[root@the~]# tar tvf /root/abc.tar
将归档文件/root/abc.tar解包出来
[root@the~]# tar xvf /root/abc.tar
将文件/root/abc/d添加到/root/abc.tar归档文件中
[root@the~]# touch /root/abc/d
// 创建/root/abc/d文件
[root@the~]# tar uvf /root/abc.tar /root/abc/d
更新归档文件/root/abc.tar中的文件/root/abc/d
[root@the~]# tar uvf /root/abc.tar /root/abc/d
将/root/abc目录压缩/root/abc.tar.gz文件
[root@the~]# tar zcvf /root/abc.tar.gz /root/abc
查看压缩文件/root/abc.tar.gz的内容
[root@the~]# tar ztvf /root/abc.tar.gz
将压缩文件/root/abc.tar.gz解压缩出来
[root@the~]# tar zxvf /root/abc.tar.gz
将压缩文件/root/abc.tar.gz解压缩到/root/www目录内
[root@the~]# tar zxvf /root/abc.tar.gz -C /root/www
将/root/adc目录压缩成/root/abc.tar.bz2 文件
[root@the~]# tar jcvf /root/abc.tar.bz2 /root/adc
查看压缩文件/root/abc.tar.bz2 的内容
[root@the~]# tar jtvf /root/abc.tar.bz2
将压缩文件/root/abc.tar.bz2 解压缩出来
[root@the~]# tar jxvf /root/abc.tar.bz2
将/root/adc目录压缩成/root/adc.tar.xz文件
[root@the~]# tar Jcvf /root/adc.tar.xz /root/adc
查看压缩文件/root/adc.tar.xz的内容
[root@the~]# tar Jtvf /root/adc.tar.xz
将压缩文件/root/adc.tar.xz解压缩出来
[root@the~]# tar Jxvf /root/adc.tar.xz
#打包,不压缩[root@CentOS ~]# tar -cvf /tmp/etc.tar /etc#打包并使用gzip压缩[root@CentOS ~]# tar -cvf /tmp/etc.tar.gz /etc#打包并使用bzip2压缩[root@CentOS ~]# tar -jcvf /tmp/etc.tar.bz2 /etc#查看压缩包文件列表[root@CentOS ~]# tar -ztvf /tmp/etc.tar.gz[root@CentOS ~]# cd /data#解压压缩包至当前路径[root@CentOS data]# tar -zxvf /tmp/etc.tar.gz#只解压指定文件[root@CentOS data]# tar -zxvf /tmp/etc.tar.gz etc/passwd#建立压缩包时保留文件属性[root@CentOS data]# tar -zxvpf /tmp/etc.tar.gz /etc#排除某些文件[root@CentOS data]# tar ——exclude /home/*log -zcvf test.tar.gz /data/soft