Posts 打包压缩指令tar常用参数解析
Post
Cancel

打包压缩指令tar常用参数解析

一、 前言

打包命令是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

故我们在打包解包时就可以根据文件类型选用相应的参数:

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工具需要自行安装, 具体安装过程请自行查询
This post is licensed under CC BY 4.0 by the author.