¿Por qué se puede abrir tgz en Linux pero no en Windows?

¿Por qué se puede abrir tgz en Linux pero no en Windows?

Recibí un archivo Tar/GZipped que se creó en un dispositivo Linux integrado.

El archivo se puede extraer perfectamente en un escritorio Linux si ejecuto algo como tar zxf myFile.tgz. El archivo se extrae a algo como

dir1/
  file1
  file2
dir2/
  file1
  file2
  subdir1/
    file1

...pero sospecho que el contenido y el diseño del archivo específico son irrelevantes.

Cuando intento extraer este mismo archivo en Windows (usando 7-Zip o WinZip), aparece:

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

Probablemente sea relevante que ese directorio de nivel superior se llame " myFile" cuando lo que .tgzrecibí essí mismonombrado myFile.tgz... pero no sé con certeza si es algo más que una coincidencia.

Busqué un poco en SuperUser y encontré algunos problemas relacionados, uno de los cuales sugería que7 cremallerasmaneja .tgzarchivos mejor que WinZip, pero aparentemente no en esta situación.

¿Alguien sabe qué da? ¿Por qué sería .tgzcompletamente extraíble en Linux pero no en Windows? ¿Qué soluciones alternativas podrían haber?

Si cambio el nombre de ese archivo sin extensión a un .tararchivo, entonceseso .tarEl archivo se puede extraer con 7-Zip y/o WinZip.

Todavía me gustaría entender qué está pasando y si hay una solución que no implique cambiar el nombre del archivo manualmente, porque idealmente el .tgzarchivo original entregado por el dispositivo integrado debería poder extraerse en Linux y Windows.

Respuesta1

tgz (tar.gz) es un archivo de dos niveles. Primero se guarda un flujo de archivos como tar. En segundo lugar, el archivo tar se comprime con gzip. Si extrae un archivo gzip, siempre obtendrá un único archivo: un archivo sin extensión con un nombre temporal en el caso de 7-zip. Este archivo se puede "descomprimir" con tar o con 7-zip nuevamente.

Además de tar stream contiene metadatos como permisos de archivos, ID de grupo + ID de usuario, xattrs o contexto selinux (y tal vez enlaces simbólicos) que se pierden en el sistema de archivos de Windows, al descomprimir archivos de Linux puede fallar o causar problemas debido al conjunto de caracteres ascii en los nombres de los archivos ( todos los caracteres excepto /los permitidos en Linux). Por lo general, no tiene sentido extraer el archivo tar al disco de Windows.

Respuesta2

¿Por qué?

Porque Microsoft no ha incorporado eso todavía.

Los tipos de archivos solo son compatibles con un sistema operativo cuando se agregan las instrucciones necesarias a ese sistema operativo para indicarle cómo manejar los archivos.

.tag.gz tiene una larga historia de uso en sistemas *nix, pero .zip y otros paquetes son mucho más populares en Windows, por lo que no ha habido ninguna demanda real para admitir esos tipos de paquetes en Windows.

Más allá de eso no podemos responder porque no somos las personas que escriben Windows.

Respuesta3

Totalmente .tgzextraíble en un sistema Linux, porque tarfue creado por AT&T Bell Laboratories específicamente para Unix y sistemas operativos similares a Unix. Y gzipes sólo un algoritmo de compresión que se desarrolló años después de tarhaber sido desarrollado.

El mismo razonamiento se aplica a todas las demás extensiones de archivo que son compatibles con un sistema operativo pero no con otro. Por ejemplo, no puedes usar un .dmgarchivo en Windows y no puedes usar un archivo .msien macOS.

La mayoría de las personas eligen esta tar.gzopción en Linux/Unix porque taralmacena los atributos y permisos de los archivos Unix y consolida todos los archivos que se van a archivar. Luego gzipse utiliza para comprimirlo.

La zipopción almacena los atributos de los archivos MSDOS, luego comprime cada archivo individualmente y luego consolida cada archivo individual en un solo archivo.

Dependiendo de su situación, en lugar de tarar y comprimir el archivo en el dispositivo integrado, puede usar el zipcomando.

información relacionada