zip
可以用来解压缩文件
补充说明
zip命令 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
语法
1 | zip(选项)(参数) |
选项
1 | -f: 刷新:仅更改的文件 |
参数
- zip压缩包:指定要创建的zip压缩包;
- 文件列表:指定要压缩的文件列表。
实例
压缩单个文件,这会将 file.txt
文件压缩到名为 compressed.zip
的归档文件中
1 | zip compressed.zip file.txt |
压缩多个文件,下面这个命令会把 file1.txt
,file2.txt
,和 file3.txt
压缩到一个叫做 compressed.zip
的归档文件中。
1 | zip compressed.zip file1.txt file2.txt file3.txt |
压缩整个目录,下面这个命令 -r
参数表示递归压缩,该命令将压缩 folder
目录及其所有子目录和文件
1 | zip -r compressed.zip folder/ |
使用最大压缩比压缩文件,下面这个命令 -9
参数指定了最大压缩比,尽管可能需要更长的处理时间
1 | zip -9 compressed.zip file.txt |
创建密码保护的 zip 文件,下面这个命令 -e
参数会提示用户输入密码以创建加密的 zip 文件。
1 | zip -e secure.zip file.txt |
只压缩新文件或已更改的文件,如果 compressed.zip
已存在,-u
参数会更新归档中的 file.txt
或将其添加至归档中(如果它是新的)
1 | zip -u compressed.zip file.txt |
压缩文件但不保留目录结构,-j
参数将不保留 file.txt
的父目录 folder
,文件在 zip 中的位置将是在根目录下
1 | zip -j compressed.zip folder/file.txt |
将/home/Blinux/html/
这个目录下所有文件和文件夹打包为当前目录下的 html.zip
:
1 | zip -q -r html.zip /home/Blinux/html |
上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
1 | zip -q -r html.zip html |
比如现在我的html目录下,我操作的zip压缩命令是:
1 | zip -q -r html.zip * |
压缩 example/basic/
目录内容到 basic.zip
压缩包中 -x
指定排除目录,注意没有双引号将不起作用。
1 | zip -r basic.zip example/basic/ -x "example/basic/node_modules/*" -x "example/basic/build/*" -x "example/basic/coverage/*" |
上面压缩解压出来,内容存放在 example/basic/
, 如果想存放到根目录,进入目录进行压缩,目前没有找到一个合适的参数来解决此问题。
1 | cd example/basic/ && zip -r basic.zip . -x "node_modules/*" -x "build/*" -x "coverage/*" |
压缩效率选择:
1 | zip -9 # 1-9 faster->better |
创建 public_html
目录下忽略所有文件和文件夹,排除包括文本 backup
的所有文件。
1 | zip -r public_html.zip public_html -x *backup* |
httpdocs
目录忽略 .svn
文件或 git
的文件和目录下创建所有文件的归档。
1 | zip -r httpdocs.zip httpdocs --exclude *.svn* --exclude *.git* |
httpdocs
目录忽略的所有文件,并与 .log
结尾的目录下创建所有文件的归档。
1 | zip -r httpdocs.zip httpdocs --exclude "*.log" |
问题解决
CentOS7中命令找不到
1 | -Bash: Unzip: Command Not Found |
解决方法
1 | yum install -y unzip zip |