文章目录
- zip
- zip支持的选项有:
- -A 详细解释
- -d (对压缩包操作)
- -e (对压缩文件加密)
- -f(只更新文件)
- -g(不显示压缩过程)
- -r (文件夹必选)
- -u(对zip操作)
- -v (很鸡肋没什么用)
- -x(压缩时排除某些文件)
- unzip
- unzip支持的选项有
- -d 指定目录
- -l 查看文件
- -n不覆盖已有文件
- -o 覆盖已有文件
- -v
- tar命令
- tar支持的选项有
- -c 压缩
- -x 解压
- -t 查看
- -r 添加
- --delete 删除
- 参考文档
zip
zip支持的选项有:
选项 | 说明 |
---|---|
-A | 调整可执行的自动解压缩文件。 |
-b<工作目录> | 指定暂时存放文件的目录。 |
-c | 替每个被压缩的文件加上注释。 |
-d | 从压缩文件内删除指定的文件。 |
-D | 压缩文件内不建立目录名称。 |
-e | 给压缩文件加密 |
-f | 更换较新的文件到压缩文件内。 |
-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 | 此参数的效果和指定"-f"参数类似,但-u不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。 |
-v | 显示指令执行过程或显示版本信息。 |
-V | 保存VMS操作系统的文件属性。 |
-w | 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。 |
-x<范本样式> | 压缩时排除符合条件的文件。 |
-X | 不保存额外的文件属性。 |
-y | 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 |
-z | 替压缩文件加上注释。 |
-$ | 保存第一个被压缩文件所在磁盘的卷册名称。 |
-<压缩效率> | 压缩效率是一个介于1-9的数值。 |
-A 详细解释
- 作者也没有理解 “调整可执行的自动解压缩文件”是什么意思
-d (对压缩包操作)
- 压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c
- 删除压缩文件 cp.zip 中子目录tmp中的文件a.c
zip -dv cp.zip tmp/a.c
-e (对压缩文件加密)
- 需要输入两次相同的密码(密码复杂度没有要求)进行加密,输入完才开始压缩
zip -er temp.zip ljj
#无法对未加密的zip进行加密,下面这个会报错 zip -e temp.zip
- temp.zip 其他文件都不会被加密,只有查看 ljj.txt 才需要密码
zip -eu temp.zip ljj.txt
-f(只更新文件)
- 只能更新文件,如果文件不存在不会添加文件
- 更新压缩包 test.zip 中的 test.txt 文件
zip -f test.zip test.txt
-g(不显示压缩过程)
- 使用这个参数所有过程都没了,除非报错,报错还是会显示的
-r (文件夹必选)
- 如果不选这个,打包文件夹打包的文件夹就是空文件夹。只有加上了这个,文件夹下的文件和子目录的文件才会被一起打包
- 把/home目录下面的mydata目录压缩为mydata.zip:
zip -r mydata.zip mydata
- 把/home目录下面的mydata目录和a.txt压缩为mydata.zip:
zip -r mydata.zip mydata a.txt
-u(对zip操作)
- 如果ljj文件在压缩包中不存在,则添加到压缩包中。如果存在则比较时间,如果时间比较新则更新ljj.txt文件,如果没有比较新则不操作
zip -u temp.zip ljj.txt
-v (很鸡肋没什么用)
- 显示指令执行过程或显示版本信息。
- 如果没有-v,只会显示stored。有-v 则会显示in、out、stored
zip -rv temp.zip ljj
zip -r temp.zip ljj
-x(压缩时排除某些文件)
- 压缩时排除 ljj 目录下的 a.txt 文件
zip -rv temp.zip ljj -x '/ljj/a.txt'
- 压缩时排除 ljj 目录下的 temp目录
zip -rv temp.zip ljj -x '/ljj/temp/*'
#这种写法是错的,会导致排除失效!!!!! zip -rv temp.zip ljj -x '/ljj/temp'
- 压缩时排除 ljj 目录下所有目录下名字含有log的文件和文件夹
zip -rv temp.zip ljj -x '/ljj/*/*log*'
unzip
unzip支持的选项有
选项 | 说明 |
---|---|
-a | 对文本文件进行必要的字符转换。 |
-b | 不要对文本文件进行字符转换。 |
-c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换。 |
-C | 压缩文件中的文件名称区分大小写。 |
-d<目录> | 指定文件解压缩后所要存储的目录。 |
-f | 更新现有的文件。 |
-j | 不处理压缩文件中原有的目录路径。 |
-l | 显示压缩文件内所包含的文件。 |
-L | 将压缩文件中的全部文件名改为小写。 |
-M | 将输出结果送到more程序处理。 |
-n | 解压缩时不要覆盖原有的文件。 |
-o | 不必先询问用户,unzip执行后覆盖原有文件。 |
-p | 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。 |
-P<密码> | 使用zip的密码选项。 |
-q | 执行时不显示任何信息。 |
-s | 将文件名中的空白字符转换为底线字符。 |
-u | 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 |
-t | 检查压缩文件是否正确。 |
-v | 执行是时显示详细的信息。 |
-V | 保留VMS的文件版本信息。 |
-x<文件> | 指定不要处理.zip压缩文件中的哪些文件。 |
-X | 解压缩时同时回存文件原来的UID/GID。 |
-z | 仅显示压缩文件的备注文字。 |
-Z | unzip -Z等于执行zipinfo指令。 |
[.zip文件] | 指定.zip压缩文件。 |
[文件] | 指定要处理.zip压缩文件中的哪些文件。 |
-d 指定目录
- 将test.zip解压到/tmp目录下,并且覆盖已有文件
unzip -o test.zip -d /tmp
-l 查看文件
- 查看压缩文件中包含的文件
unzip -l test.zip
-n不覆盖已有文件
- 将test.zip解压,并且不覆盖已有文件
unzip -n test.zip
-o 覆盖已有文件
- 将test.zip解压,并且覆盖已有文件
unzip -o test.zip
-v
- 查看压缩文件目录信息,但是不解压该文件
unzip -v test.zip
tar命令
tar支持的选项有
选项 | 说明 |
---|---|
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。 | |
-c | 压缩(建立压缩档案) |
-x | 解压 |
-t | 查看内容 |
-r | 向压缩归档文件末尾追加文件 |
-u | 更新原压缩包中的文件 |
下面的参数是根据需要在压缩或解压档案时可选的。 | |
-z | 有gzip属性的 |
-j | 有bz2属性的 |
-Z | 有compress属性的 |
-v | 显示所有过程 |
-O | 将文件解开到标准输出 |
–delete | 从存档中删除 注意是两个减号。 |
-c 压缩
- 压缩当前目录下的tar目录,压缩包的名字叫test.tar.gz
tar -cvzf test.tar.gz
- 压缩当前目录下的.c为后缀的文件。但是不能压缩以.开头的文件
tar -cvzf test.tar.gz ./*.c
- 将tar文件夹下的文件生成一个test.tar归档文件
tar -cvf test.tar tar
-x 解压
- 解压test.tar.gz到当前目录下面
tar -xvzf test.tar.gz
- 释放test.tar归档文件中的内容到 当前目录下
tar -xvf test.tar
-t 查看
- 查看当前目录下test.tar.gz压缩文件中的文件
tar -tvf test.tar.gz
- 查看归档文件中的内容
tar -tvf test.tar
-r 添加
- 将test1文件夹中的所有文件,添加到test.tar 归档文件中
tar -rf test.tar ./test1
–delete 删除
- 删除test.tar文件中的 a.c文件
tar -f test.tar --delete a.c
- 删除test.tar文件中的 以.c结尾的文件
tar -f test.tar --delete *.c
参考文档
- Linux命令 - zip命令
- Linux命令 - unzip命令
- Linux命令之压缩zip
- tar命令的详细解释