在Linux系统中,压缩文件通常是先将若干文件(包括目录)打包成一个tar文件,然后再调用压缩程序将tar文件压缩成相应的压缩包,这也就是为什么Linux系的压缩包的后缀通常都是像tar.gz,tar.Z这样的格式。因此,tar命令也就成了在Linux系统中压缩解压最常用的命令了,他不仅可以用来打包或者解开tar文件,还可以调用相应的压缩程序。所以,一个tar命令就可以完成大多数的压缩和解压的任务。这也是笔者推荐的方式。当然还有一些情况比如zip或者rar文件,由于他们通常都是直接将源文件压缩成包的(不带tar后缀名),这类压缩包通常都需要使用另外的命令来进行操作,这在后面会相续提到。
我们首先来看tar命令。这里只是介绍常用的功能选项方便大家快速上手,其他的高级功能可以查看帮助,在使用bash命令时,遇到不清楚的地方使用--help选项查看帮助是一个好的习惯。
tartar命令的常用选项如下表所示:
选项(短) | 选项 | 作用 |
-c | --create | 创建压缩文件 |
-x | --extract, --get | 解压文件 |
-f | --file | 指定文件名 |
-v | --verbose | 详细的列出处理的文件 |
所以解压普通的tar文件命令就是:
$ tar –xvf file.tar //解压tar包
-x表示解压,-v表示显示详细输出(不加也行),-f用来指定解压文件,如果你是在解压对象是文件(大多数情况都是这样,除非你是用管道传递得到解压对象的),那么这个必须要加上。
tar可调用的压缩程序选项 | 压缩格式 | 压缩程序 |
-z | .gz | gzip |
-j | .bz2 | bzip2 |
-Z | .Z | comPRess |
当看到tar.gz后缀的压缩包,使用-z选项调用gzip程序解压,当看到tar.bz2后缀的压缩包,使用-j选项调用bzip2程序解压。下面给出了几个例子。
$ tar -xzvf file.tar.gz //解压tar.gz$ tar -xjvf file.tar.bz2 //解压tar.bz2$ tar –xZvf file.tar.Z //解压tar.Z
是不是觉得很麻烦,其实还有一个-a选项,可以根据后缀名自动选择调用相应的压缩程序,所以上面的3种情况可以直接使用:
$ tar -xavf file.tar.xxx //解压tar.xxx | 万能解压命令
很方便不是吗?笔者就经常使用这个命令,上面的那些选项,不查帮助有时还真记不起来。
前面介绍的都是解压到当前目录,那么如何解压到指定的目录呢?
通过查看帮助发现了一个新选项-C --directory=DIR 改变目录DIR。假设我们要把某文件解压到test目录,在前面的基础上加上-C选项即可:
$ tar -xavf file.tar.gz -C ./test/ //解压文件到指定目录rar
$ unrar e file.rar //解压rar到当前目录$ unrar x file.rar ./test/ //解压rar到指定目录zip
$ unzip file.zip //解压zip$ unzip file.zip -d ./test //解压zip到指定目录
新闻热点
疑难解答