每天一个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
解压缩bz2
解压bz2格式压缩包的命令如下,-C选项用于选择目的路径
# tar -jxf filename.tar.bz2 -C /tmp/itworld/
排除文件
有时候我们希望打包整个目录下的大多数文件,只有一两个文件不想打包,此时就可以使用exclude选项。该选项可以排除某些文件或者目录。例如下面命令打包当前目录下的。
# tar zcf filename.tar.gz --exclude hello.txt *