内容总结自《鸟哥的Linux私房菜》http://cn.linux.vbird.org/linux_basic/0240tarcompress.php
一、打包/压缩文件常见扩展名
*.gz | gzip 程序压缩的文件 |
*.bz2 | bzip2 程序压缩的文件 |
*.tar | tar 程序打包的数据,并没有压缩过 |
*.tar.gz | tar 程序打包的文件,其中并且经过 gzip 的压缩 |
*.tar.bz2 | tar 程序打包的文件,其中并且经过 bzip2 的压缩 |
二、常用命令
1、常见场景
压缩 | tar -zcv -f filename.tar.gz 要被压缩的文件或目录名称 |
查询 | tar -ztv -f filename.tar.gz |
解压缩 | tar -zxv -f filename.tar.gz -C 欲解压缩到的目录 |
2、仅解开单一文件的方法
tar -zxv -f filename.tar.gz 待解开文档名
具体文档名的查看可以用查询命令:
tar -ztv -f filename.tar.gz #或者通过grep查找文件名关键字 tar -ztv -f filename.tar.gz | grep '文件名关键字'
3、打包时排除特定文件
假设我们想要打包 /etc/ /root 这几个重要的目录,但却不想要打包 /root/etc* 开头的文件,且不打包自身。
tar -zcv -f /root/system.tar.gz --exclude=/root/etc* --exclude=/root/system.tar.gz /etc /root
三、参数说明
-c | 创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename) |
-t | 察看打包文件的内容含有哪些档名 |
-x | 解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开。特别留意的是,-c, -t, -x 不可同时出现在一串命令列中 |
-j | 透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2 |
-z | 透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz |
-v | 在压缩/解压缩的过程中,将正在处理的档名显示出来 |
-f filename | -f 后面要立刻接要被处理的档名 |
-C 目录 | 这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项 |
--exclude=FILE | 在压缩的过程中,不要将 FILE 打包 |
-p | 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置档 |
-P | 保留绝对路径,亦即允许备份数据中含有根目录存在之意 |