天天看点

Linux的文件压缩——tar和zip命令

今天因为准备远程压缩个文件,结果用tar命令失败了好几次。看来命令还是常用才熟悉啊。

在linux下是不需要后缀名的,但通常tar归档后缀名为.tar,gzip压缩后的后缀名为.gz,bzip2压缩后的后缀名为.bz2。

命令用法:

tar [参数]  [文件或目录]

<code>1</code>

<code>#比如把x文件夹打包并用gzip压缩。</code>

<code>2</code>

<code>tar -zcvf x.tar.gz x</code>

<code>3</code>

<code>4</code>

<code>#解压到当前目录</code>

<code>5</code>

<code>tar -xzvf x.tar.gz</code>

<code>6</code>

<code>#解压到父目录</code>

<code>7</code>

<code>tar -xzvf x.tar.gz -c ..</code>

打包和解包命令基本一样,可看作是个逆过程,参数中是-c和-x的区别。解包时可以不需要指定目录,默认解压到当前目录。如需指定目录须使用-c参数。请对照上面样例。

无论打包还是解包-f后都必须跟归档名。

<code>#这样语句也能正确执行,注意-f</code>

<code>tar -cv x -f x.tar</code>

指定归档

-f  后面必须直接跟归档名

打包(create)

-c

解包

-x

详细地列出处理的文件

-v

查看打包的文件

-t

压缩

-z 调用gzip压缩   -j调用bzip2压缩

时间限制参数

-n 比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中

排除指定文件

–exclude file:不将 file 打包!

保留原本文件的属性

-p

这些参数中 c/x/t 仅能存在一个!不可同时存在!

命令用法:

zip  [参数名] [压缩包名] [被打包的文件]

unzip [压缩包名]

<code>#压缩,如果不加.zip后缀,会自动添加。</code>

<code>zip a.zip a.o</code>

<code>#解压</code>

<code>unzip a.zip</code>

zip

递归压缩

-r递归搜索目录下的所有文件夹目录,默认不会把目录下的文件压缩进去。

静默压缩

-q

添加注释

-z

压缩效率

–数字介于0-9的数值,数值越小效率越低,但越快。0就是不压缩

设定压缩日期

尝试修复压缩包

-f

压缩成自解压文件

-a

unzip

查看压缩包,不解压

-l 列出文件   -v 列出文件详细信息

解压到指定的目录

-d

是否覆盖以存在的文件

-n 不覆盖  -o 覆盖

检查压缩包是否损坏

-t  不解压

查看压缩包注释

不重建文档的目录结构

-j  把所有文件解压到同一目录下

(未完待续)

继续阅读