Determinar se um arquivo específico está compactado

15

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

manalisha
fonte
6
Defina "compactado". Os arquivos executáveis ​​compactados ogg, mp3, gz, zip, xz, rar, 7z, bz2, upx são compactados, arquivos deb, rpm compactados por sua definição?
Stéphane Chazelas

Respostas:

18

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
Leonid
fonte
Isso funciona se o arquivo é um link simbólico para um arquivo compactado?
bli
@bli não, pelo menos não no meu Ubuntu aqui.
Leonid
2

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

Observe que ZIP é um formato de contêiner comum. Por exemplo, arquivos EPUB e OpenDocument são realmente arquivos ZIP com conteúdo específico. Minha versão do filereconhece arquivos OpenDocument - mas, se a sua não, pode dizer que 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 gzip.

Geralmente, porém, basta olhar para a extensão do arquivo, como no Windows. Como .ZIP significa arquivo ZIP, .gz significa gzip. No Linux, é provável que você veja .bz2 (bunzip2) e .xz (xz).

sourcejedi
fonte
1

Você pode determinar se um arquivo se parece com um formato compactado executando o filecomando

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

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

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

wc -c somefile
gzip <somefile | wc -c
Gilles 'SO- parar de ser mau'
fonte