Odpowiedzi:
Możesz spróbować użyć file
na 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
Uruchom na nim file
polecenie. 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 file
rozpoznaje 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).
Możesz ustalić, czy plik wygląda na skompresowany format, uruchamiając file
polecenie.
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
powie 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