Bestimmen Sie, ob eine bestimmte Datei komprimiert ist

15

Wie kann man unter Linux feststellen, ob eine bestimmte Datei mit einem Befehl komprimiert wurde oder nicht?

manalisha
quelle
6
Definieren Sie "komprimiert". Sind ogg-, mp3-, gz-, zip-, xz-, rar-, 7z-, bz2-, upx-komprimierte ausführbare Dateien, deb- und rpm-Dateien nach Ihrer Definition komprimiert?
Stéphane Chazelas

Antworten:

18

Sie können filebeispielsweise Folgendes versuchen :

$ 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
quelle
Funktioniert dies, wenn die Datei ein Symlink zu einer komprimierten Datei ist?
Mittwoch,
@bli nein, zumindest nicht auf meinem Ubuntu hier.
Leonid
2

Führen Sie den fileBefehl darauf aus. Es werden komprimierte Dateien sowie andere gängige Dateiformate identifiziert.

Beachten Sie, dass ZIP ein gängiges Containerformat ist. ZB sind EPUB- und OpenDocument-Dateien eigentlich ZIP-Dateien mit spezifischem Inhalt. Meine Version von fileerkennt OpenDocument-Dateien - aber wenn nicht, kann es sein, dass Ihre OpenDocument-Datei eine ZIP-Datei ist. Dies ist möglicherweise nicht das Ergebnis, an das Sie gedacht haben :).

Um pedantisch zu sein, meinen Sie wahrscheinlich nicht "Ist diese Datei komprimiert", wie ein OpenDocument oder sogar ein als PNG oder JPEG komprimiertes Bild. Sie meinen wahrscheinlich "Ist diese Datei ein Archiv", wie z. B. ZIP, Unix Tar oder ein Archiv mit nur einer Datei wie z. B. gzip.

In der Regel wird jedoch nur die Dateierweiterung angezeigt, wie unter Windows. Wie .ZIP bedeutet ZIP-Datei, .gz bedeutet gzip. Unter Linux werden wahrscheinlich auch .bz2 (bunzip2) und .xz (xz) angezeigt.

sourcejedi
quelle
1

Sie können feststellen, ob eine Datei wie ein komprimiertes Format aussieht, indem Sie den fileBefehl ausführen.

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

filewird nur "data" sagen, wenn es das Format nicht erkennt. Sie müssen auch herausfinden, was komprimiert ist oder nicht (z. B. "ASCII-Text", "PPM", "WAVE-Audio" werden dekomprimiert; "gzip-komprimierte Daten", "JPEG-Bild", "Vorbis-Audio" werden komprimiert). .

Eine andere Möglichkeit, festzustellen, ob eine Datei komprimiert aussieht, besteht darin, sie zu komprimieren. Wenn Sie die Größe nicht wesentlich reduzieren können, ist die Datei wahrscheinlich komprimiert oder verschlüsselt.

wc -c somefile
gzip <somefile | wc -c
Gilles 'SO - hör auf böse zu sein'
quelle