- 处理「打包」的应用一般为「tar」
- 处理「压缩」的应用一般为「gzip」或者「bzip2」
- 一般「tar」文件代表的是打包好但是没压缩的文件
- 打包好且压缩的文件采用双后缀名格式如「.tar.gz」、「.tgz」、「.tar.bz2」
tar 打包
假设想把 /root/ssl 这个目录打包到/root目录下,命名为 bak.tar
-c 表示创建一个打包文件
-f 表示目标文件名
sudo tar -cf /root/bak.tar /root/ssl
看一下打包后的文件信息
ls -lh /root
返回:
total 16K
-rw-r--r-- 1 root root 10K Nov 13 13:11 bak.tar
PS:
此处进行 tar 操作时因为涉及到 /etc 目录有权限问题,所以使用普通用户操作时需要加上 sudo 提权
gzip 或 bzip2 压缩
在打包完成后可以分别使用 gzip 和 bzip2 进行压缩。但其实 tar 已经集成了这个功能,可以在打包的时候连带压缩。
tar 压缩
使用 gzip 压缩,注意文件名要加上双后缀名
sudo tar -czf /root/bak.tar.gz /root/ssl
属于 bzip2 压缩,注意文件名要加上双后缀名
sudo tar -cjf /root/bak.tar.bz2 /root/ssl
tar 解压
有压缩就有解压,打包压缩使用 -z 反过来解压则使用 -x。
在当前目录中解压 bak.tar
tar -xf bak.tar
在当前目录中解压 bak.tar.gz
tar -xzf bak.tar.gz
在当前目录中解压 bak.tar.bz2
tar -xjf bak.tar.bz2
当然还可以指定解压到的目录
在当前目录创建一个名为 bak 的文件夹
mkdir bak
使用 -C 参数(注意是大小)指定目录
tar -xzf bak.tar.gz -C bak
同样算法但不同后缀名
其实为了简化和传播, gzip 和 bzip2还有单后缀名格式。如下:
- .tar.gz > .tgz
- .tar.bz2 > .tbz2
更智能的 -a 参数
对于 gzip 的 -z 参数和 bzip2 的 -j 参数,其参数名和自身程序名没有太大关联,让人觉得不直观不好记。
-a 参数可以智能的根据后缀名自动处理。
压缩 gzip
sudo tar -caf /root/bak.tar.gz /root/ssl
sudo tar -caf /root/bak.tgz /root/ssl
压缩 bzip2
sudo tar -caf /root/bak.tar.bz2 /root/ssl
sudo tar -caf /root/bak.tbz2 /root/ssl
解压
tar -xaf bak.tar.gz
tar -xaf bak.tbz2
Comments | NOTHING