一、 前言
打包命令是Linux中常用的命令, 这个命令使用的命令行参数比较多
本文梳理一下tar
命令的语法, 总结出常用的命令组合
二、 正篇
2.1 命令格式
tar [必要参数][可选参数][文件]
2.2 命令参数
这里只写最常用的命令行参数, 完整的命令行参数表见菜鸟教程
必要参数
- -c 建立新的打包压缩文件
- -r 添加文件到已经压缩的文件
- -u 添加改变了和现有的文件到已经存在的压缩文件
- -x 从压缩的文件中提取文件
- -t 显示压缩文件的内容
- -z 支持gzip解压文件
- -j 支持bzip2解压文件
- -Z 支持compress解压文件
- -v 显示操作过程
可选参数
- -f 指定压缩文件
一般的参数结构如下
1
[cruxt][zjZ][v][f]
- 第一组选择: 创建/添加到已有/更新/提取/显示
- 第二组选择调用不同的压缩工具: gzip/bzip2/compress
- 第三组选择是否查看过程(一般会选)
- 第四组基本是必选, 后面紧跟打包压缩文件的文件名
gzip/bzip2/compress是独立于tar的外部工具, 使用命令行参数可以调用这些工具
2.3 参数选用
- tar命令先将文件打包成
.tar
文件, 这时没有压缩 - 如果需要压缩, 在命令行中选择即可, 这时会在文件名的尾端添加对应的拓展名:
- gzip的拓展名为
.gzip
- bzip2的拓展名为
.bz2
- compress的拓展名为
.z
- gzip的拓展名为
故我们在打包解包时就可以根据文件类型选用相应的参数:
1
2
3
4
5
6
7
8
9
tar -cvf pack.tar * # 对所有文件仅作打包
tar -cvzf pack.tar.gz * # 对所有文件做打包和gzip压缩
tar -cvjf pack.tar.gz * # 对所有文件做打包和bzip2压缩
tar -cvZf pack.tar.z * # 对所有文件做打包和compress压缩
tar -xvf pack.tar # 对pack.tar解包
tar -xvzf pack.tar.gz # 对pack.tar.gz解压缩并解包
tar -xvjf pack.tar.bz2 # 对pack.tar.bz2解压缩并解包
tar -xvZf pack.tar.z # 对pack.tar.z解压缩并解包
注意: 不能对压缩包进行更新u
和添加r
操作, 但可以使用查看t
查看其中内容
1
2
3
4
5
6
7
8
9
10
11
$ tar -rvf text.tar.gz sb.txt
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
$ tar -uvf text.tar.gz hi.txt
tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
$ tar -tvf text.tar.gz
-rwxrwxrwx reina/reina 10240 2020-08-08 18:09 hello.txt
-rwxrwxrwx reina/reina 7 2020-08-08 18:09 hi.txt
2.4 关于zip与rar
zip和rar都是Windows下常见的压缩文件格式, 这两种文件格式均不能用tar来解压
- Linux系统自带
zip
工具, 可以解决zip文件的压缩和解压问题 rar
工具需要自行安装, 具体安装过程请自行查询