Określ, czy określony plik jest skompresowany

15

Jak sprawdzić w systemie Linux, czy dany plik jest skompresowany, czy nie przy użyciu polecenia?

manalisha
źródło
6
Zdefiniuj „skompresowany”. Czy pliki skompresowane w formacie ogg, mp3, gz, zip, xz, rar, 7z, bz2, upx, deb, rpm są skompresowane zgodnie z twoją definicją?
Stéphane Chazelas,

Odpowiedzi:

18

Możesz spróbować użyć filena przykład:

$ 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
źródło
Czy to działa, jeśli plik jest dowiązaniem symbolicznym do pliku skompresowanego?
bli
@bli nie, przynajmniej nie na moim Ubuntu tutaj.
Leonid
2

Uruchom na nim filepolecenie. Zidentyfikuje skompresowane pliki, a także inne popularne formaty plików.

Pamiętaj, że ZIP jest popularnym formatem kontenera. Np. Pliki EPUB i OpenDocument są w rzeczywistości plikami ZIP z określoną zawartością. Moja wersja filerozpoznaje pliki OpenDocument - ale jeśli nie, może to oznaczać, że plik OpenDocument jest plikiem ZIP. To może nie być wynik, który miałeś na myśli :).

Mówiąc pedantycznie, prawdopodobnie nie masz na myśli „czy ten plik jest skompresowany”, jak OpenDocument, czy nawet obraz skompresowany jako PNG lub JPEG. Prawdopodobnie masz na myśli „czy ten plik jest archiwum”, taki jak ZIP, tar UNIX lub archiwum z jednym plikiem, takie jak gzip.

Zwykle jednak patrzysz na rozszerzenie pliku, tak jak w systemie Windows. Jak .ZIP oznacza plik ZIP, .gz oznacza gzip. W systemie Linux prawdopodobnie zobaczysz również .bz2 (bunzip2) i .xz (xz).

sourcejedi
źródło
1

Możesz ustalić, czy plik wygląda na skompresowany format, uruchamiając filepolecenie.

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

filepowie tylko „dane”, jeśli nie rozpoznaje formatu. Również od Ciebie zależy, czy zostanie skompresowany (np. „Tekst ASCII”, „PPM”, „WAVE audio” są nieskompresowane; „skompresowane dane gzip”, „JPEG”, „Vorbis audio” są skompresowane) .

Innym sposobem na wykrycie, czy plik wygląda na skompresowany, jest próba jego skompresowania. Jeśli nie można znacznie zmniejszyć rozmiaru, plik jest prawdopodobnie skompresowany lub zaszyfrowany.

wc -c somefile
gzip <somefile | wc -c
Gilles „SO- przestań być zły”
źródło