tar 命令用于文件的打包或压缩,是最为常用的打包压缩命令,其语法格式如下:
tar [选项] 文件名.tar.gz 源文件
tar -cvfz xxx.tar.gz source_file (tar -cvfz 包名.tar.gz 源文件) #以tar.gz方式打包并gz方式压缩
tar -xvfz xxx.tar.gz -c path (tar -xvfz xxx.tar.gz -c 目标路径) #解压缩包
注意:使用tar命令,打包仅仅是打包xxx.tar,打包并压缩就是xxxx.tar.gz,打包压缩的文件一定要指定文件格式,这样解包解压才好用对应的参数来解包解压缩,注意压缩包文件名和源文件位置不要颠倒了。
常用参数选项:
-c --create :创建新的归档文件,即打包,打包的意思就是说把一堆文件打包成一个文件
-v --verbose :可视化,显示详细的tar处理的文件信息的过程
-f --file :要操作的文件名
-x --extract :解压文件
-z --gzip, --gunzip, --ungzip :通过 gzip 来进行归档压缩,如 tar -czvf etc.tar.gz /etc/,解压使用tar -zxvf test.tar.gz
-j --bzip2 :通过 bzip2 来归档压缩文件,如 tar -jcvf test.tar.bz2 /etc/,解压使用tar -jxvf test.tar.bz2
-j :使用xz压缩工具压缩成.xz文件,如 tar -jcvf test.tar.xz /etc/,解压使用tar -jxvf test.tar.xz
-t --list :表示查看文件,查看文件中的文件内容
-c --directory=dir :解压文件至指定的目录,如果是解压到当前目录,可以不加-c
演示示例:
[root@centos8 shell_scripy]# tar -cvf etc.tar /etc/ #仅仅是打包,并没有压缩
[root@centos8 shell_scripy]# tar -xvf etc.tar #解包
[root@centos8 shell_scripy]# tar -czvf etc.tar.gz /etc/ #打包并压缩/etc/目录,压缩包存放在当前目录,名字为etc.tar.gz
[root@centos8 shell_scripy]# tar -xzvf etc.tar.gz -c ./find/ #解压缩etc.tar.gz到指定目录,如果是解压到当前目录,可以不用加-c
[root@centos8 shell_scripy]# tar -tvf etc.tar.gz #查看压缩包内容
我们更习惯使用gzip格式进行压缩,当然xz格式是压缩率最好的,压缩后文件大小也是最小的,但它的压缩时间也就长。