补充说明
unshar 属于 GNU sharutils,用来解包 shar(shell archive)格式:这种“归档”其实是一个包含 cat、mkdir 等命令的 shell 脚本,执行后会把各文件还原出来。unshar 会剥掉邮件头和脚本外层,再安全地运行解包部分。
shar 归档常见于老式邮件列表、Usenet 和 Unix 软件分发,如今基本被 tar、zip 取代。由于归档本质是可执行脚本,来自不可信来源的 shar 文件等同于运行陌生脚本,务必先检查内容再解包。
默认情况下,unshar 会在当前目录解包并跳过已存在的文件;用 -c 可以跳过失败继续处理下一个文件,-d 指定解包目录,-f 覆盖已存在文件。多封邮件合并的归档可以连续处理。
语法
unshar [选项] [文件...]
选项
-c, --continue:某个文件解包失败时继续处理后续文件-d 目录, --directory=目录:指定解包目标目录-e, --exit:遇到第一个错误就退出-f, --force:覆盖已存在的文件-M, --mail:按邮件消息的边界拆分处理--help、--version:帮助与版本信息
实例
# 解开一个 shar 归档到当前目录
unshar archive.shar
# 先查看内容,确认安全后再解包
less archive.shar
# 解包到指定目录
unshar -d /tmp/restore archive.shar
# 覆盖已存在的文件
unshar -f archive.shar
# 批量处理多个归档
unshar -c part1.shar part2.shar