1. gzip
gzip命令用于压缩文件,gzip命令对文本文件有60%~70%的压缩率,压缩率比较理想。
gzip只能压缩单个文件,不能压缩文件夹。故一般先用tar
打包再压缩。
1.1. 参数说明:
- -a或--ascii 使用ASCII文字模式。
- -c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
- -d或--decompress或----uncompress 解开压缩文件。
- -f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
- -h或--help 在线帮助。
- -l或--list 列出压缩文件的相关信息。
- -L或--license 显示版本与版权信息。
- -n或--no-name 压缩文件时,不保存原来的文件名称及时间戳记。
- -N或--name 压缩文件时,保存原来的文件名称及时间戳记。
- -q或--quiet 不显示警告信息。
- -r或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
- -S<压缩字尾字符串>或----suffix<压缩字尾字符串> 更改压缩字尾字符串。压缩字尾字符串>压缩字尾字符串>
- -t或--test 测试压缩文件是否正确无误。
- -v或--verbose 显示指令执行过程。
- -V或--version 显示版本信息。
- -<压缩效率> 压缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。压缩效率>
- --best 此参数的效果和指定"-9"参数相同。
- --fast 此参数的效果和指定"-1"参数相同。
1.2. 常用例子:
1.2.1. 压缩
gzip * # 压缩当前目录下所有的文件,每个文件单独压缩成一个文件,压缩到文件夹时会报错退出,压缩完后源文件会删除。
gzip -c xxx.txt > xxx.gz # 保留源文件压缩
1.2.2. 解压
gzip -d xxx.gz # 压缩包会删除
1.2.3. 查看压缩信息
gzip -l xxx.gz
2. bzip2
bzip2命令是.bz2文件的压缩程序。这种压缩格式是所有压缩方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。
bzip2只能压缩单个文件,不能压缩文件夹。故一般先用tar
打包再压缩。
2.1. 参数说明:
- -c或--stdout 将压缩与解压缩的结果送到标准输出。
- -d或--decompress 执行解压缩。
- -f或--force bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
- -h或--help 显示帮助。
- -k或--keep bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
- -s或--small 降低程序执行时内存的使用量。
- -t或--test 测试.bz2压缩文件的完整性。
- -v或--verbose 压缩或解压缩文件时,显示详细的信息。
- -z或--compress 强制执行压缩。
- --repetitive-best 若文件中有重复出现的资料时,可利用此参数提高压缩效果。
- --repetitive-fast 若文件中有重复出现的资料时,可利用此参数加快执行速度。
2.2. 常用例子:
2.2.1. 压缩
bzip2 * # 压缩当前目录下所有的文件,每个文件单独压缩成一个文件,压缩到文件夹时会报错退出,压缩完后源文件会删除。
2.2.2. 解压
bzip2 -d xxx.bz2 # 压缩包会被删除,等价于bunzip2 xxx.bz2
3. tar
Tape archive,tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,它仅仅只是一个打包工具,并不负责压缩。
3.1. 参数说明:
- -A或--catenate 新增文件到已存在的备份文件。
- -b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。区块数目>区块数目>
- -B或--read-full-records 读取数据时重设区块大小。
- -c或--create 建立新的备份文件。
- -C<目的目录>或--directory=<目的目录> 切换到指定的目录。目的目录>目的目录>
- -d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。
- -f<备份文件>或--file=<备份文件备份文件>> 指定备份文件。
- -F
- -r或--append 新增文件到已存在的备份文件的结尾部分。
- -R或--block-number 列出每个信息在备份文件中的区块编号。
- -s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。
- -S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
- -t或--list 列出备份文件的内容。
- -T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。范本文件>范本文件>
- -u或--update 仅置换较备份文件内的文件更新的文件。
- -U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
- -v或--verbose 显示指令执行过程。
- -V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。卷册名称>卷册名称>
- -w或--interactive 遭遇问题时先询问用户。
- -W或--verify 写入备份文件后,确认文件正确无误。
- -x或--extract或--get 从备份文件中还原文件。
- -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。范本文件>范本文件>
- -z或--gzip或--ungzip 通过gzip指令处理备份文件。
- -Z或--compress或--uncompress 通过compress指令处理备份文件。
- -j或--bzip或--bungzip 通过bzip2指令处理备份文件。
- --delete 从备份文件中删除指定的文件。
3.2. 常用例子:
3.2.1. 压缩
tar -cvf xxx.tar xxx # 把xxx文件夹下所有文件(夹)打包成xxx.tar,-c创建新副本,-v显示处理信息,-f要打包的文件
tar -czvf xxx.tar.gz xxx # 把xxx文件夹下所有文件(夹)打包成.tar格式后调用gzip压缩成.gz格式,-z调用gzip命令
tar -cjvf xxx.tar.bz2 xxx # 把xxx文件(夹)下所有文件夹打包成.tar格式后调用gzip压缩成.bz2格式,-j调用bzip2命令
3.2.2. 新增压缩文件
tar -rvf xxx.tar yyy.txt # 追加到文件末尾
3.2.3. 查看压缩信息
tar -tvf xxx.tar
3.2.4. 解压
tar -xvf xxx.tar
tar -xzvf xxx.tar.gz
tar -xjvf xxx.tar.bz2
4. zip
zip是个使用广泛的压缩程序,但因为不包含文档名编码信息,跨平台可能会乱码。
4.1. 参数说明:
- -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 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
- -P 加密压缩
- -q 不显示指令执行过程。
- -r 递归处理,将指定目录下的所有文件和子目录一并处理。
- -S 包含系统和隐藏文件。
- -t<日期时间> 把压缩文件的日期设成指定的日期。日期时间>
- -T 检查备份文件内的每个文件是否正确无误。
- -u 更换较新的文件到压缩文件内。
- -v 显示指令执行过程或显示版本信息。
- -V 保存VMS操作系统的文件属性。
- -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
- -x<范本样式> 压缩时排除符合条件的文件。范本样式>
- -X 不保存额外的文件属性。
- -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
- -z 替压缩文件加上注释。
- -$ 保存第一个被压缩文件所在磁盘的卷册名称。
- -<压缩效率>压缩效率> 压缩效率是一个介于1-9的数值。
4.2. 常用例子:
4.2.1. 压缩
zip xxx.zip xxx.txt
zip -r xxx.zip xxx # 压缩xxx文件夹内所有文件
zip xxx.zip xxx/* # 不包括子文件夹和隐藏文件
zip -P password xxx.zip xxx.txt # 加密压缩
zip -d xxx.zip xxx.txt # 删除xxx.zip中的xxx.txt文件
5. unzip
unzip命令用于解压缩zip文件。
5.1. 参数说明:
- -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 等于执行zipinfo指令。
5.2. 常用例子:
5.2.1. 解压
unzip xxx.zip
unzip -d xxx xxx.zip # 把xxx.zip解压到xxx目录下
unzip -P password xxx.zip # 加密解压
5.2.2. 查看压缩信息
unzip -l xxx.zip
unzip -v xxx.zip # 显示的信息比-l详细