在Linux下碰到了一些不同的解压缩文件,甚是好奇,遂搬运各大佬博客于此,以供拜读
转载自Ubuntu解压缩zip,tar,tar.gz,tar.bz2
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.bz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:
我们可以使用下列的命令压缩一个目录:
zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:
unzip archive_name.zip
TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的cpu以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
tar -cvf archive_name.tar directory_to_compress
如何解包:
tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
tar -xvf archive_name.tar -C /tmp/extract_here/
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多cpu的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:
tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
TAR.BZ2
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的cpu与时间。这个就是你如何使用tar.bz2进行压缩。
tar -jcvf archive_name.tar.bz2 directory_to_compress
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
转载自linux tar命令参数及用法详解
tar [-cxtzjvfpPN] 文件与目录 ….
常用参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p :(大写)使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
–exclude FILE:在压缩的过程中,不要将 FILE 打包!
描述
tar 程序用于储存或展开 tar 存档文件。存档文件可放在磁盘中 ,也可以存为普通文件。 tar是需要参数的,可选的参数是A、c、d、r、t、u、x,您在使用tar时必须首先为 tar 指定至少一个参数;然后,您必须指定要处理的文件或目录。如果指定一个目录则该目录下的所有子目录都将被加入存档。
应用举例:
1)展开 abc.tar.gz 使用命令: tar xvzf abc.tar.gz
展开 abc.tar 使用命令: tar xvf abc.tar
2)将当前目录下的 man 目录及其子目录存成存档 man.tar
tar cf man.tar ./man
转载自Ubuntu(Linux) 下 unzip 命令使用详解
2.位置:/usr/bin/unzip
3.格式用法:unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
4.主要参数
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-l 显示压缩文件内所包含的文件
-f 更新现有的文件
-t 检查压缩文件是否正确,但不解压
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-z 仅显示压缩文件的备注文字
-v 执行是时显示详细的信息。或查看压缩文件目录,但不解压
-T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间
-x 指定不要处理.zip压缩文件中的哪些文件
-d 指定文件解压缩后所要存储的目录
-n 解压缩时不要覆盖原有的文件
-q 安静模式,执行时不显示任何信息
-o 不必先询问用户,unzip执行后覆盖原有文件
-a 对文本文件进行必要的字符转换
-j 不处理压缩文件中原有的目录路径
-aa 把所有的文件目录当作文本处理
-U use escapes for all non-ASCII Unicode
-UU 忽略Unicode编码字符
-C 压缩文件中的文件名称区分大小写
-L 将压缩文件中的全部文件名改为小写
-X 解压缩时同时回存文件原来的UID/GID
-V 保留VMS的文件版本信息
-K 保留文件的setuid/setgid/tacky属性
-M 将输出结果送到more程序处理
-O 指定字符编码为DOS,Windows和OS/2
-I 指定字符编码为UNIX
5.应用实例
1、把文件解压到当前目录下
unzip test.zip
2、如果要把文件解压到指定的目录下,需要用到-d参数。
unzip -d /temp test.zip
3、解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数
unzip -n test.zip
unzip -n -d /temp test.zip
4、只看一下zip压缩包中包含哪些文件,不进行解压缩
unzip -l test.zip
5、查看显示的文件列表还包含压缩比率
unzip -v test.zip
6、检查zip文件是否损坏
unzip -t test.zip
7、将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件
unzip -o test.zip -d /tmp/
转载自Ubuntu(Linux) 下 zip 命令使用详解
2.位置:/usr/bin/zip
3.格式用法:zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
4.主要参数
-f 更新现有的文件
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-d 指定文件解压缩后所要存储的目录
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中
-r 将指定的目录下的所有子目录以及文件一起处理
-j 不处理压缩文件中原有的目录路径
-0 在存储,不压缩
-l 显示压缩文件内所包含的文件
-1 较快速度的压缩
-9 较高质量的压缩
-q 安静模式,在压缩的时候不显示指令的执行过程
-v 执行是时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-z 仅显示压缩文件的备注文字
-@ 从标准输入中读取名称,一个路径名称用一行
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-x 指定不要处理.zip压缩文件中的哪些文件
-i 只压缩符合条件的文件
-F 尝试修复损坏的压缩文件
-D 压缩文件内不建立目录名称
-A 调整可执行的自动解压缩文件
-J 删除可执行文件,留下一个普通的zip归档文件
-T 检查备份文件内的每个文件是否正确无误
-X 解压缩时同时回存文件原来的UID/GID
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效
-e 加密
-n 不压缩具有特定字尾字符串的文件
-h2 显示更多帮助
5.应用实例
1、把所有 my1*.doc 的文件打包成一个 new1.zip文件
zip new1.zip my1*.doc
new1.zip 可以省略扩展名简写成 new1,它会自行默认 .zip 的扩展名。
2、删除除.zip文件中的指定文件
zip -d new1.zip my18.doc
如果当初my18.doc 是压缩在 new1.zip 中的一个文件,现在这条命令把它从压缩文件中抽走并删掉。-d 是删除的意思。
3、添加一个文件到.zip文件中
zip -g new1.zip my32.doc
如果当初并没有把 my32.doc 压在 new1.zip 里面,现在把它加进去。-g 选项是增加而不要重新产生的意思
4、将更改过的文件添加到压缩包中
zip -u new1.zip my2*.doc
如果当初 my2*.doc都已经压缩进 new1.zip 里面了,但是后来 my2*.doc中有几个文件有更改,又不想去找出到底是哪些文件更改了,这条命令请系统自行帮助检查,更改过的才更新到压缩,否则就不必动。
5、把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:
zip -r yasuo.zip abc.txt dir1
6、将/home/Blinux/html/ 这个目录下所有文件和文件夹打包为当前目录下的html.zip
zip -qr html.zip /home/Blinux/html
-q为安静模式,在压缩的时候不显示指令的执行过程
小结
写的很精彩,当了回小小的搬运工,先mark一下,等到要用的时候,再翻出来看一看