Linux——文件打包与压缩

*爱你&永不变心* 提交于 2020-02-27 08:31:00

  Linux 下常见常用的压缩包文件格式有*.zip,*.rar,*.7z*.gz,*.xz,*.bz2,*.tar,*.tar.gz,*.tar.xz,*tar.bz2等后缀的压缩文件

文件后缀名说明
*.zip zip程序打包压缩的文件
*.rar rar程序压缩的文件
*.7z 7zip程序压缩的文件
*.tar tar程序打包,未压缩的文件
*.gz gzip程序(GNU zip)压缩的文件
*.xz xz程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar.gz tar打包,gzip程序压缩的文件
*.tar.xz tar打包,xz程序压缩的文件
*tar.bz2 tar打包,bzip2程序压缩的文件
*.tar.7z tar打包,7z程序压缩的文件

ZIP

zip压缩打包文件

zip命令文件压缩与解压 zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。

语法:
zip(选项)(参数)

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

参数:
zip压缩包:指定要创建的zip压缩包; 
文件列表:指定要压缩的文件列表。

实例:
zip -q -r -o home.zip /home
zip -r -1 -q -o test_1.zip /home/test -x ~/*.zip

注意: 关于zip命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:需要加上-l参数将LF转换为CR+LF来达到以上目的。

unzip解压缩zip文件

语法:
unzip(选项)(参数)

选项:
-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; 
-d<目录>:指定文件解压缩后所要存储的目录; 
-x<文件>:指定不要处理.zip压缩文件中的哪些文件; 
-Z:unzip-Z等于执行zipinfo指令。

参数:
压缩包:指定要解压的“.zip”压缩包。

实例:
unzip -n test.zip -d /tmp

注意: 使用unzip解压文件时我们同样应该注意兼容问题,不过这里我们关心的不再是上面的问题,而是中文编码的问题,通常 Windows 系统上面创建的压缩文件,如果有有包含中文的文档或以中文作为文件名的文件时默认会采用 GBK 或其它编码,而 Linux 上面默认使用的是 UTF-8 编码,如果不加任何处理,直接解压的话可能会出现中文乱码的问题(有时候它会自动帮你处理),为了解决这个问题,我们可以在解压时指定编码类型。使用-O(英文字母,大写o)参数指定编码类型:

unzip -O GBK 中文压缩文件.zip

  

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!