打包与解压是在Linux中使用非常频繁的一个命令,尤其是tar命令。记得当初第一次接触Linux操作系统进行文件的解压时,对tar命令一头雾水,不明白为什么有那么多不同的参数可选,是时候来认真整理一下tar命令的详细用法了
最权威的使用手册当时是官方文档,直接从terminal输入man tar
就能看到详细的使用手册。tar命令是 manipulate tape archives,概要如下
tar [bundled-flags <args>] [<file> | <pattern> ...]
tar {-c} [options] [files | directories]
tar {-r | -u} -f archive-file [options] [files | directories]
tar {-t | -x} [options] [patterns]
比较详细的中文手册可以参考《鸟哥的linux私房菜》一书,鸟哥的linux私房菜中文官网,此处参考书中给出的最常用的几个参数选项进行学习
$ tar [-z|-j|-J] [cv] [-f待建立的新文件名] filename... //打包与压缩
$ tar [ -z|-j|-J] [tv] [-f既有的tar文件名] //察看档名
$ tar [-z|-j|-J] [xv] [ -f既有的tar文件名] [-C目录] //解压缩
参数含义:
-c :建立压缩文件,可搭配-v 来察看过程中被打包压缩的文件名(filename)
-t :察看已打包压缩的内容含有哪些文件,重点在察看文件就是了;
-x :解打包或解压缩的功能,可以搭配-C (大写) 在特定目录解压缩,
特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。
-z :透过gzip 的支援进行压缩/解压缩:此时文件名最好为*.tar.gz
-j :透过bzip2 的支援进行压缩/解压缩:此时文件名最好为*.tar.bz2
-J :透过xz 的支援进行压缩/解压缩:此时档名最好为*.tar.xz
特别留意, -z, -j, -J 不可以同时出现在一串指令列中
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f [空格] 文件名!建议-f 单独写一个选项啰!(比较不会忘记)
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
个人在使用过程中习惯使用-zxvf和-zcvf参数,-zcvf用于打包文件,-zxvf用于解压缩文件,打包后的格式为 *.tar.gz
例如,当前文件夹中包含了某次自动化回归后保存的视频,为了把这些视频备份存档,需要对这些视频进行打包,那么只需要使用命令tar -zcvf 打包后的路径与文件名 待打包路径
即可对文件实现打包。
打包完成后,可以使用tar -jtvf 已有压缩包名称
查看当前压缩包中包含哪些文件
总之,记住-x参数是用于解压缩,-c参数用于打包,-f 空格 文件名三大原则,基本就不会出错啦