Linux的压缩和解压命令有好几个,今天我们可以简单的看一下它们的使用方法,写的不好望见谅!
一:zip/unzip命令
zip/unzip将一般的文件和目录进行压缩和解压,默认生成以“.zip”为后缀的压缩包;
格式如下:
zip [选项] 压缩文件名 需要压缩的文档列表
unzip [选项] 压缩文件名
选项 | 说明 |
-r | 递归压缩 |
-d | 从压缩文件中删除指定的文件 |
-i “文件列表” | 只压缩文件列表中指定的文件 |
-x “文件列表” | 压缩中排除文件列表中指定的文件 |
-u | 更新文件到压缩文件中 |
-m | 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中 |
-F | 尝试修复已损坏的压缩文件 |
-T | 检查备份文件内的每个文件是否正确无误。 |
- 压缩级别 | 压缩效率是一个介于1-9的数值 |
表 1 zip压缩选项及其说明
选项 | 说明 |
-x 文件 | 指定不要处理.zip压缩文件中的哪些文件 |
-t | 检查压缩文件是否正确 |
-v | 执行是时显示详细的信息 |
-n | 解压缩时不要覆盖原有的文件 |
-o | 不必先询问用户,unzip执行后覆盖原有文件 |
-d 目录名 | 指定文件解压缩后所要存储的目录 |
表 2 unzip选项及其说明
2:举例
1)将/etc目录下的所有文件和目录进行压缩,设置压缩级别为最高,保存到文件/tmp/etc.zip
zip -9r /tmp/etc.zip /etc
2)将/tmp目录中所有文件以及子目录压缩,除了”*.txt”文件之外,将压缩文件保存到/tmp目录下。
zip -r /tmp/demodir.zip demodir -x "*.txt"
3)将上面/tmp/demodir.zip中的*.html文件从压缩包中删除
zip demodir.zip -d "*.html"
4)修改上述目中的3.txt文件,希望把更新信息更新到demodir.zip包中
zip -ru /tmp/demodir.zip demodir
5)将上述的打包文件进行解压,除了.html文件,在解压过程中如果出现相同的文件就直接覆盖,不要求用户确认。
unzip -o demodir.zip -x "*.html"
二:gzip/gunzip命令
功能说明:将一般的文件进行压缩或者解压。压缩文件预设的扩展名为“.gz”,其实gunzip就是gzip的硬链接,因此无论是压缩或解压都可以通过gzip来实现。
注意:gzip只能对文件进行压缩,不能压缩目录,即使指定压缩的目录,也只能压缩目录内的所有文件。
选项 | 说明 |
-d | 解开压缩文件 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-t | 测试压缩文件是否正确无误 |
-v | 显示指令执行过程 |
-l | 列出压缩文件的相关信息 |
-num | 缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高;--best 此参数的效果和指定"-9"参数相同;--fast 此参数的效果和指定"-1"参数相同 |
表 3 gzip选项及其说明
示例:
1):将上述打包的demodir.zip进行压缩,压缩级别为9,并显示指令的执行过程;
gzip -9v demodir.zip
2):查看上述的压缩信息
gzip -l demodir.zip.gz
3):解压上述压缩的文件
gunzip demodir.zip.gz
上述两个命令是一样的
三:bzip2/bunzip2命令
对于目录只能压缩目录下的所有文件,压缩完成后,此目录下生成以“.bz2”,bunzip2其实是bzip2的符号链接,即软连接;
bzip2 [选项] 要压缩或解压的文件
选项 | 说明 |
-d | 执行解压缩 |
-v | 压缩或解压缩文件时,显示详细的信息 |
-k | bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数 |
-f | bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数 |
-t | 测试.bz2压缩文件的完整性 |
-压缩级别 | 压缩时的区块大小 |
表 4 bzip2选项及说明
示例:
将/tmp/demodir.zip进行压缩,设置压缩率为最高,同时在压缩完毕后不删除原始文件,显示压缩过程的详细信息
bzip2 -9vk demodir.zip
四:tar命令
tar [主选项+辅助选项] 文件或者目录
tar主选项
选项 | 说明 |
-c | 建立新的备份文件 |
-r | 新增文件到已存在的备份文件的结尾部分 |
-t | 列出备份文件的内容 |
-x | 从备份文件中还原文件 |
-u | 仅置换较备份文件内的文件更新的文件 |
表 5 tar主选项
选项 | 说明 |
-z | 通过gzip指令处理备份文件 |
-w | 遭遇问题时先询问用户 |
-j | 调用bzip2命令在文件打包的过程中压缩/解压文件 |
-Z | 通过compress指令处理备份文件 |
-f | 指定备份文件 |
-v | 显示指令执行过程 |
-p | 用原来的文件权限还原文件 |
-N “yyyy/mm/dd” | 只将较指定日期更新的文件保存到备份文件里 |
--exclude file | 排除符合范本样式的文件 |
表 6 tar辅命令及说明
示例:
1):将/etc目录下的所有文件打包,并显示打包的详细文件,设置打包文件名为etc.tar,同时保存到tmp目录下:
tar -cvf /tmp/etc.tar /etc
2):将/etc目录下的所有文件打包并压缩,然后显示打包的详细文件,设置打包文件名为etc.tar.gz,同时保存文件到/tmp目录下:
tar -czvf etc.tar.gz /etc
3):查阅上面etc.tar.gz压缩包的内容
tar -ztvf etc.tar.gz
4):将/etc目录下的所有文件打包备份到/tmp目录下,并保持每个文件的权限。
tar -zcvpf etc.tar.gz /etc
5):打包备份/var/log目录中2020/05/01以后的文件
tar -N "2020/05/01" -czvf /tmp/etc.tar.gz /var/log
6):打包备份/home目录和/etc目录,但是不备份/home下的ixdba目录。
tar -exclude /home/ixadb -zcvf /tmp/etc.tar.gz /home/* /etc
五:dd命令
dd if=”input_file” of=”output_file” bs=”block_size” count=”number”
if :就是输入文件,可以是设备
of : 就是输出文件
bs : 指定一个block的大小
count:就是”bs”的数量
示例:将/tmp/dd.txt备份成/tmp/dd.txt.bak
dd if =dd.txt of=dd.txt.bak
六:cpio命令
cpio命令是通过重定向的方式将文件进行打包、备份、还原、恢复的工具,它可以解压以”.cpio”或者”.tar”结尾的文件,格式如下:
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
选项 | 说明 |
-o | 执行copy-out模式,建立备份档 |
-i | 执行copy-in模式,还原备份档 |
-t | 将输入的内容呈现出来 |
-v | 详细显示指令的执行过程 |
-d | 如有需要cpio会自行建立目录 |
-c | 使用旧ASCII备份格式 |
-B | 将输入/输出的区块大小改成5210 Bytes |
表 7 cpio选项及其说明
示例:
1):将/etc下的所有普通文件都备份到/tmp/etc.cpio
find /etc -type f | cpio -ocvB >/tmp/etc.cpio
cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别、读取,而find命令的输出刚好到了这点,因此cpio命令一般和find命令配合使用。
如果想查看更多,更关注公众号:我要一幕天