在日常Linux中很多的时候都需要利用命令进行压缩/解压相关的操作,我在学习中总是弄不懂为什么同样的压缩文件为何在不同的书籍上使用的命令不同,在此我讲自己的见解写出,以助和我一样不解之人解惑。
首先,介绍一下tar命令经常涉及到的相关参数以其作用。
① -c 创建压缩文件
② -x 解开压缩文件
③ -t 查看压缩包内有哪些文件
④ -z 用Gzip压缩或解压
⑤ -j 用bzip2压缩或解压
⑥ -v 显示压缩或解压的过程
⑦ -f 目标文件名
⑧ -p 保留原始的权限与属性
⑨ -P 使用绝对路径来压缩
⑩ -C 指定解压到放置的目录
接下来,分析一下这些参数,什么时候用,为什么要有这个参数的出现。
对于-c和-x,看作用很明显的能区分,是给系统指令这是压缩还是解压操作。不能同时使用(就像车不能同时前进和倒退吧)。
-t只是一个查询性质的参数。
对于-z和-j这两个参数,首先要提到我们使用的文件压缩格式(文件名末尾就是压缩格式),主要使用的有:.tar和.tar.gz和.tar.bz2格式。选择上述两个参数根据将解压的文件格式或者将要生成的文件格式选择。
-v,是显示操作过程。如果操作一个比较大的文件,相对时间比较长,或者系统比较卡导致时间也过长,若没有任何的文字日志 输出,这时就不好判断,现在正在操作还是电脑死机,到底操作到什么程度了,都是不知道。本人建议一般使用还是带上这 个参数,起到提示的作用。
-f 这个是比较重要的,是目标文件名,必须放到参数中最后一位。解压时就是需要解压的压缩包;压缩时就是需要进行压缩的文件。
后面三个根据自己的需要使用即可。
例如:tar -zxvf love.tar.gz -C /root
就是将当前目录下的love.tar.gz压缩包,解压缩之后保存到root目录下。在此过程中打印解压的过程日志信息。