Определите, сжат ли конкретный файл

15

Как узнать в Linux, сжат ли конкретный файл или нет командой?

manalisha
источник
6
Определите «сжатый». Сжатые ли по вашему определению сжатые исполняемые файлы ogg, mp3, gz, zip, xz, rar, 7z, bz2, upx, deb, rpm?
Стефан Шазелас

Ответы:

18

Вы можете попробовать использовать file, например:

$ file test.sh.gz
test.sh.gz: gzip compressed data, was "test.sh", from Unix, last modified: Wed Feb  6 14:35:33 2013
Леонид
источник
Работает ли это, если файл является символической ссылкой на сжатый файл?
ло
@ Бли нет, по крайней мере, на моем Ubuntu здесь.
Леонид
2

Запустите fileкоманду на нем. Он будет определять сжатые файлы, а также другие распространенные форматы файлов.

Обратите внимание, что ZIP является распространенным контейнерным форматом. Например, файлы EPUB и OpenDocument на самом деле являются файлами ZIP с определенным содержимым. Моя версия fileраспознает файлы OpenDocument, но если у вас нет, это может означать, что ваш файл OpenDocument является файлом ZIP. Это может быть не тот результат, который вы имели в виду :).

Чтобы быть педантичным, вы, вероятно, не имеете в виду «сжат ли этот файл», как OpenDocument, или даже изображение, сжатое как PNG или JPEG. Вы, вероятно, имеете в виду «Является ли этот файл архивом», например, ZIP, unix tar или однофайловым архивом, таким как gzip.

Обычно, однако, вы просто смотрите на расширение файла, как в Windows. Как .ZIP означает ZIP-файл, .gz означает gzip. В Linux вы также можете увидеть .bz2 (bunzip2) и .xz (xz).

sourcejedi
источник
1

Вы можете определить, выглядит ли файл как сжатый формат, запустив fileкоманду.

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просто скажет «данные», если он не распознает формат. Кроме того, вам нужно выяснить, что сжато или нет (например, «ASCII текст», «PPM», «WAVE audio» несжатые; «сжатые данные gzip», «JPEG изображение», «Vorbis audio» сжаты) ,

Другой способ определить, выглядит ли файл сжатым, - попытаться сжать его. Если вы не можете значительно уменьшить размер, возможно, файл сжат или зашифрован.

wc -c somefile
gzip <somefile | wc -c
Жиль "ТАК - прекрати быть злым"
источник