目录
1. tar 文件的归档
tar [选项] 归档压缩后生成的文件 打包文件
常用参数:
-c # 创建文件
-x # 提取解压还原文件
-v # 显示详细执行过程
-f # 指定备份文件
-t # 列出压缩包中包括哪些文件,不解包,查看包中的内容
-C # 指定解压位置
#对/opt/grub/目录进行打包
tar -cvf /root/grnb.tar /opt/grub/
#将grnb1.tar解压到当前目录
tar xvf /root/grnb1.tar
#对/root/grnb1.tar进行解压缩(指定解压目录到/tmp)
tar -xvf /root/grnb1.tar -C /tmp
#在打包过程中跳过md5sum目录中sre.tar.gz的文件
tar -cvf md5sum.tar md5sum/ --exclude sre.tar.gz
#不解包查看tar中的内容
tar -tvf /opt/usb.tar
2. tar 归档+压缩
tar [选项] 归档压缩后生成的文件 打包文件
常用参数:
-z # 以gzip方式压缩 扩展名 .tar.gz(.tgz)
-j # 以bz2方式压缩 扩展名 .tar.bz2
-J # 以xz方式压缩 扩展名 .tar.xz
后缀名:Linux系统中不以后缀名区分文件,后缀名为了方便管理员识别文件类型
#压缩 .tar.gz 格式
tar -zcvf /root/grnb.tar /opt/grub/
#解压 .tar.gz 格式
tar -zxvf /root/grnb.tar /opt/grub/
#压缩 .tar.bz2 格式
tar -jcvf /root/grnb.tar /opt/grub/
#解压 .tar.bz2 格式
tar -jxvf /root/grnb.tar /opt/grub/
#压缩 .tar.xz 格式
tar -Jcvf /root/grnb.tar /opt/grub/
#解压 .tar.xz 格式
tar -jxvf /root/grnb.tar /opt/grub/
3. zip 管理压缩文件
zip [选项] [压缩文件名.zip] [要压缩的文件或目录]
常用参数:
-r # 递归压缩,包括子目录及其内容。
-q # 安静模式,不在终端上显示任何信息。
-e # 加密压缩文件,在创建压缩文件时会提示输入密码。
-o # 使用原始文件的修改时间来设置压缩文件的修改时间。
-f # 刷新,只更新已改变的文件或者加入已改变或新增的文件。
-u # 更新,更改归档文件内的文件或者将新增的文件添加到归档。
-d # 删除,从压缩文件中删除指定的文件。
-l # 列表,显示压缩文件的内容而不解压。
-x # 排除,压缩时排除某个文件或目录
#压缩当前目录下的所有文件和文件夹到名为 archive.zip 的压缩文件中
zip -r archive.zip *
#压缩 documents 目录,并使用加密
#将提示输入一个密码,该密码将用于加密压缩文件
zip -re archive.zip documents/
#只更新或添加 newfile.txt 到已有的 archive.zip 文件
zip -u archive.zip newfile.txt
#查看 archive.zip 压缩文件内的内容
unzip -l archive.zip
#从 archive.zip 中删除一个叫做 oldfile.txt 的文件
zip -d archive.zip oldfile.txt
#压缩 images 目录,并使用最大压缩级别(使用 -9 选项)
zip -r -9 archive.zip images/
#压缩一个文件夹,同时排除某个子文件夹或文件(比如排除 cache 文件夹)
zip -r archive.zip folder/ -x folder/cache/*
4. unzip解压
unzip
常用参数:
-l: 列出归档文件内容的列表,而不实际提取文件。
-v: 在 -l 参数的基础上输出更详细的信息。
-n: 解压文件时跳过解压那些已经存在的文件,不会覆盖已有的文件。
-o: 在解压文件时自动覆盖已存在的文件,而不提示用户确认。
-d: 指定解压文件的目标目录。
-x: 排除那些特定的文件,不解压这些文件。
-p: 将文件内容打印到标准输出(stdout),不解压到磁盘上。
-t: 测试压缩文件的完整性,检查是否有损坏。
-u: 仅当压缩文档中的文件比磁盘上的文件更新时才提取该文件。
示例:
# 列出 archive.zip 中的文件,不解压
unzip -l archive.zip
#解压 archive.zip 中的所有文件到当前目录,自动覆盖任何已存在的文件
unzip -o archive.zip
#解压 archive.zip 到指定目录 /path/to/destination,不覆盖已有的文件
unzip -n archive.zip -d /path/to/destination
#解压 archive.zip 中所有文件,除了 file-to-exclude.txt
unzip archive.zip -x file-to-exclude.txt
#将 archive.zip 中名为 file-to-print.txt 的文件内容发送到标准输出
unzip -p archive.zip file-to-print.txt
#测试 archive.zip 是否有任何文件损坏
unzip -t archive.zip
#仅当 archive.zip 中的文件比目标位置的文件更新时,才解压到当前目录:
unzip -u archive.zip
5. 多种压缩方式的区别:
- zip的压缩包要比gz、bz xz压缩包大很多
- 在遇到软连接时,gz、bz xz直接对软链接路径进行压缩打包,而zip会将软链接路径的源文件进行复制压缩