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
    • 最新
    • 标签
主页 / computer / 问题 / 1420629
Accepted
StoneThrow
StoneThrow
Asked: 2019-04-03 14:52:19 +0800 CST2019-04-03 14:52:19 +0800 CST 2019-04-03 14:52:19 +0800 CST

为什么tgz在linux box上可以打开,在windows上却打不开?

  • 772

我收到了一个在嵌入式 Linux 设备上创建的 Tar/GZipped 文件。

如果我运行类似tar zxf myFile.tgz. 该文件提取到类似的东西

dir1/
  file1
  file2
dir2/
  file1
  file2
  subdir1/
    file1

...但我怀疑具体的文件内容和布局无关紧要。

当我尝试在 Windows 中提取同一个文件时(使用 7-Zip 或 WinZip),我得到:

  myFile/
    <extensionless file with temp-looking name e.g. "logs_xqUt09">

myFile当.tgz我收到的本身被命名时,顶级目录恰好被命名为“”可能是相关的myFile.tgz......但我不确定这是否只是巧合。

我浏览了一下 SuperUser,发现了一些相关问题,其中一个表明7-Zip.tgz比 WinZip 更好地处理文件,但显然不是这种情况。

有谁知道什么给?为什么 a.tgz在 Linux 而不是 Windows 下可以完全提取?可能有什么解决方法?

如果我将该无扩展名文件重命名为一个.tar文件,则该 .tar文件可以使用 7-Zip 和/或 WinZip 提取。

我仍然想了解发生了什么,是否有不涉及手动文件重命名的解决方法,因为理想情况下.tgz,嵌入式设备交付的原始文件应该可以在 Linux 和 Windows 下提取。

windows linux windows-7
  • 3 3 个回答
  • 659 Views

3 个回答

  • Voted
  1. Best Answer
    alecxs
    2019-04-10T15:14:27+08:002019-04-10T15:14:27+08:00

    tgz (tar.gz) 是一个二级归档。首先将文件流保存为 tar。其次,tar 文件使用 gzip 压缩。如果你解压缩一个 gzip 文件,你将始终得到一个文件 - 在 7-zip 的情况下具有临时名称的无扩展名文件。这个文件可以用 tar 或 7-zip 再次“解压”。

    除了 tar 流包含在 Windows 文件系统上丢失的文件权限、组 ID + 用户 ID、xattrs 或 selinux 上下文(可能还有符号链接)等元数据之外,由于文件名中的 ascii 字符集(除了/在 linux 中允许的所有字符)。通常将 tar 存档提取到 Windows 磁盘是没有意义的

    • 4
  2. music2myear
    2019-04-10T14:16:24+08:002019-04-10T14:16:24+08:00

    为什么?

    因为微软还没有/还没有内置它。

    只有在操作系统中添加了必要的指令以告诉它如何处理文件时,操作系统才支持文件类型。

    .tag.gz 在 *nix 系统中的使用历史悠久,但 .zip 和其他包在 Windows 中更受欢迎,因此在 Windows 中没有任何支持这些包类型的真正需求。

    除此之外我们无法回答,因为我们不是编写 Windows 的人。

    • 1
  3. DrZoo
    2019-04-11T11:54:24+08:002019-04-11T11:54:24+08:00

    在.tgzLinux 系统上完全可提取,因为tar它是由 AT&T 贝尔实验室专门为 Unix 和类 Unix 操作系统构建的。并且gzip只是一种在开发多年后开发的压缩算法tar。

    同样的原理适用于一个操作系统支持但另一个操作系统不支持的所有其他文件扩展名。例如,您不能.dmg在 Windows 上使用文件,也不能.msi在 macOS 上使用 a。

    大多数人tar.gz在 Linux/Unix 上选择该选项是因为它tar存储了 Unix 文件属性和权限,并整合了所有要归档的文件。然后gzip用于压缩它。

    该zip选项存储 MSDOS 文件属性,然后单独压缩每个文件,然后将每个单独的文件合并为一个文件。

    根据您的情况,您可以使用zip命令代替在嵌入式设备上对文件进行 taring 和 gzip 压缩。

    • 1

相关问题

  • 以 root 身份运行 docker 容器

  • 在 Windows 上与 Docker 守护进程通信

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

  • 资源管理器侧面板中的桌面外壳快捷方式

Sidebar

Stats

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

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve