AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 438803
Accepted
jayhendren
jayhendren
Asked: 2018-04-20 11:23:37 +0800 CST2018-04-20 11:23:37 +0800 CST 2018-04-20 11:23:37 +0800 CST

如何提取“X1 档案”?

  • 772

我有一个没有文件扩展名的奇怪文件,据说它是 git 存储库内容的存档。根据file (1),这是一个“X1 档案”:

$ file my_git_repo 
my_git_repo: X1 archive data

但是,我想不出任何方法来提取或查看此文件的内容。我试过了:

  • tar
  • unzip
  • bzip2
  • xz
  • lzip
  • lzma
  • lzop
  • gzip
  • uncompress

但是这些工具都不能识别我的文件。我也尝试在Wikipedia和Arch Wiki上寻求帮助,但这些页面都没有提到“X1”。我还尝试了“X1 存档”或“提取 X1 文件”的谷歌搜索变体,但主要是我得到了名为“X1”的产品或服务的结果,似乎与名为“X1”的文件格式无关。最后,我尝试使用类似的工具查看该文件strings,该文件确实包含我希望在我的 git 存储库中的文件的文件名以及该存储库中文件的片段,所以我不认为这个文件是只是随机数据或类似的东西。

我有什么样的文件,如何查看其内容?

compression archive
  • 1 1 个回答
  • 558 Views

1 个回答

  • Voted
  1. Best Answer
    jayhendren
    2018-04-20T12:00:43+08:002018-04-20T12:00:43+08:00

    好的,这个我想通了。

    我注意到文件的第一行包含一个奇怪的字符串:

    % head -n 1 my_git_repo | strings
    X11 forwarding request failed on channel 0
    

    那根弦似曾相识。我的默认 SSH 配置尝试转发 X11 连接,但是当它失败时——例如通过 ssh 对 git 服务器运行 git 操作时——该字符串会打印在 stderr 上:

    $ git archive --remote=ssh://[email protected]/my_git_repo.git master > my_git_repo.tar
    X11 forwarding request failed on channel 0
    

    我猜测创建 git 存档的库同时捕获了 stdout 和 stderr 而不仅仅是 stdout,这将解释该文件的第一行是如何形成的。

    因此,如果我删除该文件的第一行,我会得到更合理的输出file (1):

    $ tail -n +2 my_git_repo > my_git_repo.edit
    $ file my_git_repo.edit 
    my_git_repo.edit: Zip archive data, at least v1.0 to extract
    

    如果我将文件重命名为my_git_repo.zip并尝试使用 查看文件的内容unzip -l,我发现它包含我期望的文件,并且当我使用 提取存档时unzip,我得到了我想要的文件。

    我不确定从哪里libmagic得到这个文件是“X1 存档”的想法,但我猜这与“X1”是损坏文件的前两个字符有关。

    • 3

相关问题

  • Unix 解压缩失败,但 Mac 存档实用程序有效

  • 将存档解压缩到单个文件夹

  • 使用 btrfs-send / btrfs-receive 压缩

  • thunar-archive-plugin - 无法提取文件:找不到合适的存档管理器

  • 如何启用 btrfs zstd 压缩

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve