Warum kann tgz auf einer Linux-Box geöffnet werden, aber nicht unter Windows?

Warum kann tgz auf einer Linux-Box geöffnet werden, aber nicht unter Windows?

Ich habe eine Tar/GZipped-Datei erhalten, die auf einem eingebetteten Linux-Gerät erstellt wurde.

Die Datei kann auf einem Linux-Desktop problemlos extrahiert werden, wenn ich etwas wie ausführe tar zxf myFile.tgz. Die Datei wird in etwas wie

dir1/
  file1
  file2
dir2/
  file1
  file2
  subdir1/
    file1

...aber ich vermute, dass der spezifische Dateiinhalt und das Layout irrelevant sind.

Wenn ich versuche, dieselbe Datei in Windows zu extrahieren (mit 7-Zip oder WinZip), erhalte ich:

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

Es ist wahrscheinlich relevant, dass dieses oberste Verzeichnis zufällig " myFile" heißt, wenn das, was .tgzich erhalten habe,selbstgenannt myFile.tgz…, aber ich weiß nicht mit Sicherheit, ob das mehr als ein Zufall ist.

Ich habe SuperUser ein wenig durchsucht und einige verwandte Probleme gefunden, von denen eines darauf hindeutete, dass7-Zipverarbeitet .tgzDateien besser als WinZip, aber anscheinend nicht in dieser Situation.

Weiß jemand, was los ist? Warum wäre ein .tgzunter Linux vollständig extrahierbar, aber nicht unter Windows? Welche Workarounds könnte es geben?

Wenn ich diese Datei ohne Erweiterung in eine .tarDatei umbenenne, dannDas .tarDie Datei kann mit 7-Zip und/oder WinZip extrahiert werden.

Ich würde immer noch gerne verstehen, was los ist und ob es eine Problemumgehung gibt, bei der die manuelle Dateiumbenennung nicht erforderlich ist, da die .tgzvom eingebetteten Gerät bereitgestellte Originaldatei im Idealfall unter Linux und Windows extrahierbar sein sollte.

Antwort1

tgz (tar.gz) ist ein zweistufiges Archiv. Zuerst wird ein Datenstrom als Tar gespeichert. Dann wird die Tar-Datei mit Gzip komprimiert. Wenn Sie eine Gzip-Datei extrahieren, erhalten Sie immer eine einzelne Datei – im Fall von 7-Zip eine Datei ohne Erweiterung mit einem temporär aussehenden Namen. Diese Datei kann mit Tar oder erneut mit 7-Zip „entpackt“ werden.

außerdem enthält der Tar-Stream Metadaten wie Dateiberechtigungen, Gruppen-ID + Benutzer-ID, Xattrs oder Selinux-Kontext (und möglicherweise symbolische Links), die im Windows-Dateisystem verloren gehen. Das Entpacken von Linux-Dateien kann aufgrund des ASCII-Zeichensatzes in Dateinamen (alle Zeichen außer den /in Linux zulässigen) fehlschlagen oder Probleme verursachen. Normalerweise macht es keinen Sinn, das Tar-Archiv auf die Windows-Festplatte zu extrahieren

Antwort2

Warum?

Weil Microsoft das bisher nicht eingebaut hat/hatte.

Dateitypen werden von einem Betriebssystem nur dann unterstützt, wenn dem Betriebssystem die erforderlichen Anweisungen zum Umgang mit den Dateien hinzugefügt werden.

.tag.gz wird seit langem in *nix-Systemen verwendet, aber .zip und andere Pakete sind unter Windows viel beliebter, sodass es keine wirkliche Nachfrage gab, diese Pakettypen unter Windows zu unterstützen.

Weitere Informationen können wir nicht geben, da wir nicht die Leute sind, die Windows schreiben.

Antwort3

.tgzAuf einem Linux-System vollständig extrahierbar, da es tarvon AT&T Bell Laboratories speziell für Unix und Unix-ähnliche Betriebssysteme entwickelt wurde. Und gzipes ist lediglich ein Komprimierungsalgorithmus, der Jahre später entwickelt wurde tar.

Dasselbe Prinzip gilt für alle anderen Dateierweiterungen, die von einem Betriebssystem unterstützt werden, von einem anderen jedoch nicht. Beispielsweise können Sie eine .dmgDatei nicht unter Windows verwenden und eine nicht .msiunter macOS.

Die meisten Leute wählen diese tar.gzOption unter Linux/Unix, da tarsie Unix-Dateiattribute und -Berechtigungen speichert und alle zu archivierenden Dateien konsolidiert. Anschließend gzipwird sie zum Komprimieren verwendet.

Die zipOption speichert MSDOS-Dateiattribute, komprimiert dann jede Datei einzeln und konsolidiert anschließend jede einzelne Datei zu einer Datei.

Abhängig von Ihrer Situation können Sie anstelle des Tarierens und GZIP-Komprimierens der Datei auf dem eingebetteten Gerät zipauch den Befehl verwenden.

verwandte Informationen