Determina se um arquivo específico é compactado

12

Como saber no Linux se um determinado arquivo está compactado ou não usando um comando?

    
por manalisha 06.02.2013 / 11:25

3 respostas

14

Você pode tentar usar file , por exemplo:

$ file test.sh.gz
test.sh.gz: gzip compressed data, was "test.sh", from Unix, last modified: Wed Feb  6 14:35:33 2013
    
por 06.02.2013 / 11:36
2

Execute o comando file nele. Ele identificará arquivos compactados, bem como outros formatos comuns de arquivos.

Observe que o ZIP é um formato de contêiner comum. Por exemplo. Os arquivos EPUB e OpenDocument são na verdade arquivos ZIP com conteúdo específico. Minha versão do file reconhece arquivos OpenDocument - mas se o seu não, pode dizer que o seu arquivo OpenDocument é um arquivo ZIP. Este pode não ser o resultado que você tinha em mente:).

Para ser pedante, você provavelmente não quer dizer "este arquivo está compactado", como um OpenDocument ou mesmo uma imagem compactada como PNG ou JPEG. Você provavelmente quer dizer "este arquivo é um arquivo", como ZIP, unix tar ou um arquivo único como o gzip.

Normalmente, você só olha para a extensão do arquivo, como no Windows. Como .ZIP significa arquivo ZIP, .gz significa gzip. No Linux, você provavelmente também verá .bz2 (bunzip2) e .xz (xz).

    
por 06.02.2013 / 11:38
1

Você pode determinar se um arquivo se parece com um formato compactado executando o comando file .

file lorem.txt lorem.txt.gz
lorem.txt:    ASCII text
lorem.txt.gz: gzip compressed data, from Unix, last modified: Thu Feb  7 02:10:44 2013, max compression

file dirá apenas "dados" se não reconhecer o formato. Além disso, cabe a você descobrir o que é compactado ou não (por exemplo, “texto ASCII”, “PPM”, “Áudio WAVE” são descompactados; “dados comprimidos gzip”, “imagem JPEG”, “áudio Vorbis” são compactados) .

Outra maneira de detectar se um arquivo parece compactado é tentar compactá-lo. Se você não puder reduzir significativamente o tamanho, o arquivo provavelmente será compactado ou criptografado.

wc -c somefile
gzip <somefile | wc -c
    
por 07.02.2013 / 02:15