Linux 命令速查
压缩备份 man unshar

unshar

解开 shar 格式的 shell 归档文件

返回

补充说明

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

参考链接