shell命令--zip

shell命令--zip

0、zip命令的专属图床

点此快速打开文章图床_shell命令zip

1、zip命令的功能说明

zip 命令用于压缩文件。zip 是个使用广泛的压缩程序,文件经它压缩后会另外产生具有 .zip 扩展名的压缩文件。

2、zip命令的语法格式

SYNOPSIS
    zip  [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$]  [--longoption ...]  [-b path] [-n suffixes] [-t date]
    [-tt date] [zipfile [file ...]]  [-xi list]

    zipcloak (see separate man page)

    zipnote (see separate man page)

    zipsplit (see separate man page)

    Note:  Command line processing in zip has been changed to support long options  and  handle  all
    options  and  arguments  more  consistently.  Some old command lines that depend on command line
    inconsistencies may no longer work.

3、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的数值。

4、zip命令的实践操作

范例1:打包文件

清空目录

cd && rm -rf /test  -->将之前的实验环境删除掉。提示:rm -rf 谨慎使用!
mkdir /test && cd /test

打包文件

touch file{1..3}.txt
ls
zip -q -r test.zip *
ls

范例2:检查备份文件内的每个文件是否正确无误

zip -T test.zip

范例3:从压缩文件 test.zip 删除文件 file1.txt

unzip -v test.zip  -->查看zip包内的文件
zip -d -v test.zip file1.txt  -->zip很奇怪,参数得分开写
!unzip

范例4:从压缩文件 test.zip 删除目录 dir 及文件

模拟环境

mkdir -p dir  -->创建dir目录
ls
mv *.txt dir  -->将以txt结尾的文件全部移到dir目录下
ls
ls dir/

打包文件

zip -q -r new1_test.zip *
ls
mv dir test.zip /tmp
ls

删除目录

cp new1_test.zip new2_test.zip
unzip -v new1_test.zip
zip -d new1_test.zip dir/
!unzip
unzip new1_test.zip
ls
ls dir/  -->什么情况?怎么没删除掉?看下面操作

rm -rf dir test.zip
unzip -v new2_test.zip
zip -d new2_test.zip dir/*
!unzip
unzip new2_test.zip
ls

『MineGi有话说』:快来扫一扫下面链接的二维码,加入我们吧!

您的资助是我最大的动力!
金额随意,欢迎来赏!

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

如果,想给予我更多的鼓励,求打

因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【MineGi】!

原文地址:https://www.cnblogs.com/MineGi/p/12631629.html