Linux下zip包的压缩与解压缩[转]

来源:互联网 发布:javascript代码规范 编辑:程序博客网 时间:2024/04/20 15:51

zip命令
功能说明:压缩文件。 
语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 
补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。 
参 数: 
-A 调整可执行的自动解压缩文件。 
-b<工作目录> 指定暂时存放文件的目录。 
-c 替每个被压缩的文件加上注释。 
-d 从压缩文件内删除指定的文件。 
-D 压缩文件内不建立目录名称。 
-f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。 
-F 尝试修复已损坏的压缩文件。 
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。 
-h 在线帮助。 
-i<范本样式> 只压缩符合条件的文件。 
-j 只保存文件名称及其内容,而不存放任何目录名称。 
-J 删除压缩文件前面不必要的数据。 
-k 使用MS-DOS兼容格式的文件名称。 
-l 压缩文件时,把LF字符置换成LF+CR字符。 
-ll 压缩文件时,把LF+CR字符置换成LF字符。 
-L 显示版权信息。 
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。 
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。 
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。 
-q 不显示指令执行过程。 
-r 递归处理,将指定目录下的所有文件和子目录一并处理。 
-S 包含系统和隐藏文件。 
-t<日期时间> 把压缩文件的日期设成指定的日期。 
-T 检查备份文件内的每个文件是否正确无误。 
-u 更换较新的文件到压缩文件内。 
-v 显示指令执行过程或显示版本信息。 
-V 保存VMS操作系统的文件属性。 
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。 
-x<范本样式> 压缩时排除符合条件的文件。 
-X 不保存额外的文件属性。 
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 
-z 替压缩文件加上注释。 
-$ 保存第一个被压缩文件所在磁盘的卷册名称。 
-<压缩效率> 压缩效率是一个介于1-9的数值。


unzip命令

功能说明:解压缩zip文件

语 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

补充说明:unzip为.zip压缩文件的解压缩程序。

参 数:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t 检查压缩文件是否正确。

-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

-v 执行是时显示详细的信息。

-z 仅显示压缩文件的备注文字。

-a 对文本文件进行必要的字符转换。

-b 不要对文本文件进行字符转换。

-C 压缩文件中的文件名称区分大小写。

-j 不处理压缩文件中原有的目录路径。

-L 将压缩文件中的全部文件名改为小写。

-M 将输出结果送到more程序处理。

-n 解压缩时不要覆盖原有的文件。

-o 不必先询问用户,unzip执行后覆盖原有文件。

-P<密码> 使用zip的密码选项。

-q 执行时不显示任何信息。

-s 将文件名中的空白字符转换为底线字符。

-V 保留VMS的文件版本信息。

-X 解压缩时同时回存文件原来的UID/GID。

[.zip文件] 指定.zip压缩文件。

[文件] 指定要处理.zip压缩文件中的哪些文件。

-d<目录> 指定文件解压缩后所要存储的目录。

-x<文件> 指定不要处理.zip压缩文件中的哪些文件。

-Z unzip -Z等于执行zipinfo指令


范例:

zip命令可以用来将文件压缩成为常用的zip格式。unzip命令则用来解压缩zip文件。

1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:

# zip -r yasuo.zip abc.txt dir1

2.我下载了一个yasuo.zip文件,想解压缩:

# unzip yasuo.zip

3.我当前目录下有abc1.zip,abc2.zip和abc3.zip,我想一起解压缩它们:

# unzip abc\?.zip

注释:?表示一个字符,如果用*表示任意多个字符。

4.我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:

# unzip -v large.zip

5.我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了

# unzip -t large.zip

6.我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录:

# unzip -j music.zip



bzip2 和 bunzip2

要使用 bzip2 来压缩文件,在 shell 提示下键入以下命令:

bzip2 filename

文件即会被压缩并被保存为 filename.bz2

要扩展压缩的文件,键入以下命令:

bunzip2 filename.bz2

filename.bz2 文件会被删除,而继之以 filename

你可以使用 bzip2 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

bzip2 filename.bz2 file1 file2 file3 /usr/work/school 

上面的命令把 file1file2 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.bz2 文件中。

 窍门 

要获得有关这两个命令的详细信息,在 shell 提示下键入 man bzip2 和 man bunzip2 来阅读 bzip2 和 bunzip2命令的说明书页。

gzip 和 gunzip

要使用 gzip 来压缩文件,在 shell 提示下键入以下命令:

gzip filename

文件即会被压缩,并被保存为 filename.gz

要扩展压缩的文件,键入以下命令:

gunzip filename.gz

filename.gz 会被删除,而继之以 filename

你可以使用 gzip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

gzip -r filename.gz file1 file2 file3 /usr/work/school 

上面的命令把 file1file2 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.gz 文件中。

 窍门 

要获得有关这两个命令的详细信息,在 shell 提示下键入 man gzip 和 man gunzip 来阅读 gzip 和 gunzip 命令的说明书页。

zip 和 unzip

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:

zip -r filename.zip filesdir

在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。

要抽取 zip 文件的内容,键入以下命令:

unzip filename.zip

你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

zip -r filename.zip file1 file2 file3 /usr/work/school 

上面的命令把 file1file2 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。

 窍门 

要获得有关这两个命令的详细信息,在 shell 提示下键入 man zip 和 man unzip 来阅读 zip 和 unzip 命令的说明书页。

在 shell 提示下给文件归档

tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。

tar 使用的选项有:

  • -c — 创建一个新归档。

  • -f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项一起使用时,则解除该选项指定的归档。

  • -t — 显示包括在 tar 文件中的文件列表。

  • -v — 显示文件的归档进度。

  • -x — 从归档中抽取文件。

  • -z — 使用 gzip 来压缩 tar 文件。

  • -j — 使用 bzip2 来压缩 tar 文件。

要创建一个 tar 文件,键入:

tar -cvf filename.tar directory/file

在以上的例子中,filename.tar 代表你创建的文件,directory/file 代表你想放入归档文件内的文件和目录。

你可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:

tar -cvf filename.tar /home/mine/work /home/mine/school

上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前目录中一个叫做 filename.tar的新文件里。

要列出 tar 文件的内容,键入:

tar -tvf filename.tar

要抽取 tar 文件的内容,键入:

tar -xvf filename.tar

这个命令不会删除 tar 文件,但是它会把被解除归档的内容复制到当前的工作目录下,并保留归档文件所使用的任何目录结构。譬如,如果这个 tar 文件中包含一个叫做 bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,抽取归档文件将会导致在你当前的工作目录中创建 foo/ 目录,该目录中包含 bar.txt 文件。

请记住,tar 默认不压缩文件。要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:

tar -cjvf filename.tbz file

按照约定俗成,用 bzip2 压缩的 tar 文件具有 .tbz 扩展名。不过,有时用户使用 tar.bz2 扩展名来归档他们的文件。

以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。

你还可以用一个命令来扩展并解除归档 bzip tar 文件:

tar -xjvf filename.tbz

要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:

tar -czvf filename.tgz file

按照约定俗成,使用 gzip 来压缩的 tar 文件具有 .tgz 扩展名。

这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被替换为 filename.tar

你可以用单个命令来扩展 gzip tar 文件:

tar -xzvf filename.tgz

0 0
原创粉丝点击