Déterminer si un fichier particulier est compressé

15

Comment savoir sous Linux si un fichier particulier est compressé ou non à l'aide d'une commande?

manalisha
la source
6
Définissez "compressé". Les fichiers exécutables compacts ogg, mp3, gz, zip, xz, rar, 7z, bz2, upx, deb, rpm sont-ils compressés selon votre définition?
Stéphane Chazelas

Réponses:

18

Vous pouvez essayer d'utiliser file, par exemple:

$ 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
la source
Est-ce que cela fonctionne si le fichier est un lien symbolique vers un fichier compressé?
bli
@bli non, du moins pas sur mon Ubuntu ici.
Leonid
2

Exécutez la filecommande dessus. Il identifiera les fichiers compressés, ainsi que d'autres formats de fichiers courants.

Notez que ZIP est un format de conteneur courant. Par exemple, les fichiers EPUB et OpenDocument sont en fait des fichiers ZIP avec un contenu spécifique. Ma version de filereconnaît les fichiers OpenDocument - mais si la vôtre ne le fait pas, cela peut dire que votre fichier OpenDocument est un fichier ZIP. Ce n'est peut-être pas le résultat que vous aviez en tête :).

Pour être pédant, vous ne voulez probablement pas dire "ce fichier est-il compressé", comme un OpenDocument, ou même une image compressée au format PNG ou JPEG. Vous voulez probablement dire "ce fichier est-il une archive", comme ZIP, unix tar ou une archive à fichier unique comme gzip.

Cependant, vous regardez généralement l'extension du fichier, comme sous Windows. Comme .ZIP signifie fichier ZIP, .gz signifie gzip. Sous Linux, vous verrez également probablement .bz2 (bunzip2) et .xz (xz).

sourcejedi
la source
1

Vous pouvez déterminer si un fichier ressemble à un format compressé en exécutant la filecommande.

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

filedira simplement "données" s'il ne reconnaît pas le format. De plus, c'est à vous de déterminer ce qui est compressé ou non (par exemple, "texte ASCII", "PPM", "audio WAVE" ne sont pas compressés; "données compressées gzip", "image JPEG", "audio Vorbis" sont compressés) .

Une autre façon de détecter si un fichier semble compressé est d'essayer de le compresser. Si vous ne pouvez pas réduire considérablement la taille, le fichier est probablement compressé ou chiffré.

wc -c somefile
gzip <somefile | wc -c
Gilles 'SO- arrête d'être méchant'
la source