每天一个Linux系统命令|tar

名称

tar命令是Linux系统下最常用的打包命令,它不但可以对文件或者文件夹打包,还可以打包的时候同时压缩文件。

用法描述

tar [选项] 目标文件 源文件.....//压缩

tar [选项] 压缩文件 //解压

选项描述

如下是该命令的一些选项,按照使用频率进行介绍。

c:打包
x:解包,解压缩
f:指定文件压缩文件
z:压缩成gz格式
j:压缩成bz2格式
J:压缩成xz格式
C:指定解压缩目录
t:显示文件列表
v:显示详细信息
p:保留备份数据的属性和权限,常用于备份重要的配置文件。 
P:保留绝对路径,解压覆盖当前文件。 
--exclude=xxx:在压缩过程中,跳过xxx文件。

使用示例

打包压缩

通过zcf参数可以创建一个压缩包,后面hello.txt文件和itworld文件夹是要打包压缩的内容,最后会生成压缩包文件filename.tar.gz

# tar -zcf filename.tar.gz hello.txt itworld/

查看文件类型

通过file命令可以查看文件的类型。

# file filename.tar.gz

filename.tar.gz: gzip compressed data, from Unix, last modified: Fri Jan 18 01:36:43 2019

解压压缩包

使用gunzip命令可以解压上面打包的问题,最后会生成一个tar包。

# gunzip filename.tar.gz

-rw-r--r--. 1 root root 2283520 4月 16 11:37 filename.tar

也可以直接解包,不用gunzip解压缩,需要指定zxf选项。

# tar xf filename.tar

# tar zxf filename.tar

打包bz2格式

也可以将文件打包压缩为bz2格式。

# tar jcf filename.tar.bz2 hello.txt itworld/

查看列表

可以通过t选项查看压缩包的文件列表。

# tar -tf filename.tar.bz2

每天一个Linux系统命令|tar

解压缩bz2

解压bz2格式压缩包的命令如下,-C选项用于选择目的路径

# tar -jxf filename.tar.bz2 -C /tmp/itworld/

排除文件

有时候我们希望打包整个目录下的大多数文件,只有一两个文件不想打包,此时就可以使用exclude选项。该选项可以排除某些文件或者目录。例如下面命令打包当前目录下的。

# tar zcf filename.tar.gz --exclude hello.txt *

相关推荐