源码部署unzip解压缩工具

unzip命令是用于 .zip 格式文件的解压缩工具,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。Man手册
默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。

1、获取unzip源码
官网链接

sudo wget http://downloads.sourceforge.net/infozip/unzip60.tar.gz   (ubuntu)
wget http://downloads.sourceforge.net/infozip/unzip60.tar.gz        (centos)

2、解压

tar -zxf unzip60.tar.gz

3、进入目录

cd unzip60/

4、将Makefile从unix子目录复制到当前目录

cp unix/Makefile .

5、安装

# Ubuntu
make prefix=/usr linux
sudo make prefix=/usr install
# CentOS
make clean
make generic

# 若要自定义交叉编译工具,比如在嵌入式系统运行,则只要修改unix\Makefile文件下的:
  44 # UnZip flags
  45 CC = cc#       尝试使用“gcc”目标,而不是改变它 (CC and LD
  46 LD = $(CC)#     must match, 否则“未解析的符号:__main”是可能的)
--<
#CC = cc 这句屏蔽 并修改对应的路径
CC = /home/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc
然后重新clean 后再编译即可:
make -f unix/Makefile clean
make -f unix/Makefile generic

6、验证

zip -v
unzip -v

7、命令使用
功能说明:解压缩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指令

Linux的unzip命令详解实例

例1:将压缩文件text.zip在当前目录下解压缩。

[root@master ~]# unzip test.zip

例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

[root@master ~]# unzip -n test.zip -d /tmp

例3:查看压缩文件目录,但不解压。

[root@master ~]# unzip -v test.zip

例4:将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。

[root@master ~]# unzip -o test.zip -d tmp/

例5:解压当前目录下的所有zip文件

unzip "*.zip"
ls *.zip | xargs -n1 unzip

Now that the environment won’t change, changing yourself is the only solution.

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/126628021