![Por que o tgz pode ser aberto no Linux, mas não no Windows?](https://rvso.com/image/1586938/Por%20que%20o%20tgz%20pode%20ser%20aberto%20no%20Linux%2C%20mas%20n%C3%A3o%20no%20Windows%3F.png)
Recebi um arquivo Tar/GZipped que foi criado em um dispositivo Linux incorporado.
O arquivo pode ser extraído perfeitamente em um desktop Linux se eu executar algo como tar zxf myFile.tgz
. O arquivo é extraído para algo como
dir1/
file1
file2
dir2/
file1
file2
subdir1/
file1
... mas suspeito que o conteúdo e o layout específicos do arquivo sejam irrelevantes.
Quando tento extrair esse mesmo arquivo no Windows (usando 7-Zip ou WinZip), recebo:
myFile/
<extensionless file with temp-looking name e.g. "logs_xqUt09">
Provavelmente é relevante que esse diretório de nível superior seja nomeado " myFile
" quando o .tgz
que recebi éem sinomeado myFile.tgz
... mas não tenho certeza se é algo mais do que uma coincidência.
Naveguei um pouco pelo SuperUser e encontrei alguns problemas relacionados, um dos quais sugeria que7-Ziplida com .tgz
arquivos melhor que o WinZip, mas aparentemente não nesta situação.
Alguém sabe o que dá? Por que seria .tgz
totalmente extraível no Linux, mas não no Windows? Que soluções alternativas podem existir?
Se eu renomear esse arquivo sem extensão para um .tar
arquivo, entãoque .tar
arquivo pode ser extraído com 7-Zip e/ou WinZip.
Eu ainda gostaria de entender o que está acontecendo e se há uma solução alternativa que não envolva a renomeação manual do arquivo, porque idealmente o .tgz
arquivo original entregue pelo dispositivo incorporado deve ser extraível no Linux e no Windows.
Responder1
tgz (tar.gz) é um arquivo de dois níveis. primeiro, um fluxo de arquivos é salvo como tar. segundo, o arquivo tar é compactado com gzip. se você extrair um arquivo gzip, sempre obterá um único arquivo - arquivo sem extensão com nome de aparência temporária no caso de 7-zip. este arquivo pode ser "descompactado" com tar ou com 7-zip novamente.
além do tar stream conter metadados como permissões de arquivo, ID de grupo + ID de usuário, xattrs ou contexto selinux (e talvez links simbólicos) que se perdem no sistema de arquivos Windows, a descompactação de arquivos Linux pode falhar ou causar problemas por causa do conjunto de caracteres ascii nos nomes dos arquivos ( todos os caracteres, exceto /
permitidos no Linux). geralmente não faz sentido extrair o arquivo tar para o disco do Windows
Responder2
Por que?
Porque a Microsoft ainda não incorporou isso.
Os tipos de arquivo só são suportados por um sistema operacional quando as instruções necessárias são adicionadas a esse sistema operacional para informar como lidar com os arquivos.
.tag.gz tem um longo histórico de uso em sistemas *nix, mas .zip e outros pacotes são muito mais populares no Windows e, portanto, não houve nenhuma demanda real para oferecer suporte a esses tipos de pacotes no Windows.
Mais do que isso, não podemos responder porque não somos as pessoas que escrevem o Windows.
Responder3
Totalmente .tgz
extraível em um sistema Linux, porque tar
foi desenvolvido pela AT&T Bell Laboratories especificamente para sistemas operacionais Unix e semelhantes a Unix. E gzip
é apenas um algoritmo de compressão que foi desenvolvido anos depois de tar
ter sido desenvolvido.
O mesmo raciocínio se aplica a todas as outras extensões de arquivo suportadas em um sistema operacional, mas não em outro. Por exemplo, você não pode usar um .dmg
arquivo no Windows e não pode usar um arquivo .msi
no macOS.
A maioria das pessoas escolhe a tar.gz
opção no Linux/Unix porque tar
armazena atributos e permissões de arquivos Unix e consolida todos os arquivos a serem arquivados. Em seguida, gzip
é usado para compactá-lo.
A zip
opção armazena atributos de arquivo MSDOS, compacta cada arquivo individualmente e consolida cada arquivo individual em um único arquivo.
Dependendo da sua situação, em vez de tarar e compactar o arquivo no dispositivo incorporado, você pode usar o zip
comando.