前言
tar命令是Linux下最常用的打包、压缩和解压缩命令,我们可以利用tar命令将文件打包或压缩成一个文件,提高网络传输的效率。
目录
一、tar命令的作用
二、命令格式
三、常用选项
四、创建(非压缩的)包文件
五、压缩
六、列出包文件中的文件列表
七、解包/解压缩包
八、总结
一、tar命令的作用
- tar是一种标准的文件打包格式
- 利用tar命令可以将要备份的一组文件和目录打包成一个文件,以便于保存和网络传输。
- tar命令内置了相应的参数选项,以实现对tar文件的压缩或解压。
- 需要时从.tar文件中恢复即可。
二、命令格式
命令格式:
- tar [选项] [打包文件名] [被打包的源文件或目录列表]
- tar [选项] [打包文件名] [-C 目标文件夹]
Examples:
tar -cf a.tar b # 将b文件打包成tar包 tar -tvf a.tar # 列出a.tar包中所有文件 tar -xf a.tar # 释放a.tar包中所有文件(解包)
三、常用选项
四、创建(非压缩的)包文件
命令格式:
tar cvf 包文件名 要打包的目录或文件名列表
功能:
将指定的一个或多个文件或目录备份生成为一个指定的包文件。
- 练习:创建名为myFile.tar的包文件,其内容为用户主目录下的f1, f2和f3。
touch f1 f2 f3 //创建文件f1, f2, f3tar -cvf myFile.tar f1 f2 f3 //将f1, f2, f3打包为myFile.tartar -tvf myFile.tar //查看tar包中的详细内容
注意:要使tar命令能够打包选定的文件,执行tar命令的用户必须能够读取这些文件。如,为/etc目录及其所有内容建立打包文件需要root特权,因为只有root用户才可以读取其中的所有文件。非特权用户可以创建/etc目录的包文件,但该包文件中将不包含用户没有读取权限的文件和没有读取及执行权限的子目录。
五、压缩
为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式
命令格式:
tar c[z | j | J]f 压缩包文件名 要备份的目录或文件名
功能:
节省存储空间,将指定目录或文件压缩,生成一个压缩包。
- 练习:为/etc目录一次创建gzip格式、bzip2格式和xz格式的压缩包文件,并以长格式显示所有为/etc目录创建的包文件,通过查看包文件大小比较压缩率的大小。
mkdir /etcFile //创建一个空文件夹cd / //切换至根目录tar -czf /etcFile/my_etc.tar.gz etc //创建gzip格式的压缩包文件tar -cjf /etcFile/my_etc.tar.bz2 etc //创建bzip2格式的压缩文件tar -cJf /etcFile/my_etc.tar.xz etc //创建xz格式的压缩文件ll /etcFile/ //查看三个压缩文件的详细信息
压缩比率大小比较:xz > gzip > gzip2
六、列出包文件中的文件列表
命令格式:
tar t[v]f 包文件名
- 练习1:查询/root/my_file.tar中的文件目录列 表
tar -tf myFile.tar
- 练习2:显示文件列表中每个文件的详细情况
tar -tvf myFile.tar
七、解包/解压缩包
命令格式:
tar x[v]f 包文件名 [-C 目标位置]
功能:
将tar包中的文件解包放至目标位置。
- 练习:将/root/myFile.tar包解包,放至/root/myfile目录中。
mkdir /root/myfile //创建目录myfiletar -xf myFile.tar -C /root/myfile //解包myFile.tar,放至/root/myfile
提示:
- 在提取压缩过的包文件时,可以省略在创建压缩包文件时使用的同一压缩选项,因为tar命令可以自动判断使用的压缩方式。
Example:将第五项压缩练习中/etcFile目录中的3个压缩包解压缩到3个不同的目录下。
mkdir -p /zzz/{bzip2,gz,xz} //创建目录,注意加上-p选项,递归创建目录级tar -xf /etcFile/my_etc.tar.bz2 -C /zzz/bzip2/ //解压bzip2方式的压缩包,放在/zzz/bzip2目录下tar -xf /etcFile/my_etc.tar.gz -C /zzz/gz/ //解压gzip方式的压缩包,放在/zzz/gz目录下tar -xf /etcFile/my_etc.tar.xz -C /zzz/xz/ //解压xz方式的压缩包,放在/zzz/xz目录下tree -L 2 /zzz //使用-L选项的tree命令,列出/zzz目录下深度为2的文件。
八、总结
- tar命令是Linux系统中主要的打包、压缩和解压缩的命令。
- -c:创建.tar格式包文件
- -x:解包.tar格式包文件
- -c[ j | J | z ]vf:以[ bz2 | xz | gz ]格式创建压缩包
- 压缩率:xz > gzip > gzip2
- tar命令可以自动判断使用的压缩方式。