Как найти типы сжатых архивов в Ubuntu Linux



Попробуйте наш инструмент устранения неполадок

Иногда, когда вы пытаетесь извлечь .tar.gz, .tar.xz, .tar.bz2 или даже обычный zip-файл, вы обнаруживаете, что получаете сообщение об ошибке, например xz: (stdin): Формат файла не распознан, что указывает на что операционная система не может его извлечь. Ubuntu и другие производные от Debian дистрибутивы Linux предоставляют файловую утилиту, которая сообщит вам, правильно ли названо то, что вы пытаетесь извлечь. Иногда возможно, что сжатый архив был неправильно назван, а иногда из-за ошибки веб-браузера что-то, что не является сжатым архивом, может быть названо так. Хотя Linux и многие другие операционные системы на основе Unix не полностью полагаются на расширения файлов в той степени, в которой это делают DOS и Windows, они по-прежнему используют их для идентификации сжатых архивов.



Если файловая утилита сообщает вам, что архив имеет неправильный тип, вам просто нужно изменить имя на правильное расширение, а затем попытаться извлечь его снова. Если это не архив, файловая утилита все равно будет работать, чтобы определить правильный тип. Скорее всего, вы обнаружите, что архив представляет собой HTML-файл, ошибочно идентифицированный как архив, но всегда следует проявлять осторожность при извлечении архивов, которые вы все равно загружаете из Интернета. Цифровые преступники иногда модифицируют файлы, чтобы они отображались в виде архивов, чтобы создать проблемы для пользователей, поэтому совет файловой утилиты следует принимать близко к сердцу.



Определение типов файлов независимо от расширений

Естественно, всегда настоятельно рекомендуется выполнять сканирование архивов на наличие вредоносных программ перед их извлечением, но если ничего не обнаружено, вы можете увидеть несколько типов сообщений об ошибках. Помимо сообщений из xz или gunzip, вы также можете увидеть несколько сообщений об ошибках из программы tar. Если вы получаете сообщения об ошибках, которые читаются как tar: Дочерний вернул статус 1 или tar: Ошибка не может быть восстановлена: выход сейчас, то вы можете извлекать что-то, что не должно быть извлечено или, по крайней мере, не так, как вы указали tar для Сделай так. Возможно, вы пробовали unxz или другие программы, которые со временем продолжают выдавать одни и те же ошибки.



В командной строке интерфейса командной строки, с которой вы работали, попробуйте файл theFileName.tar.xz, заменив theFileName.tar.xz именем файла, с которым вы на самом деле работаете. В настоящее время расширение может иметь вид .tar.gz, .tar.bz2, .txz, .tgz или несколько других вариантов. Команда file вычисляет сумму первых нескольких байтов в файле, которую иногда называют магическим числом. Затем этот так называемый магический тест сравнивается с таблицей, которая сама сопоставлена ​​с разными типами файлов. Если файл обнаружит, что на самом деле это какой-то текстовый файл, он сообщит, в какой кодировке находится текст.

Например, вы можете file.tar.xz: HTML-документ, текст Unicode UTF-8, с очень длинными строками, что означает, что ваш браузер действительно загрузил веб-страницу, а не архив. Неправильная команда wget также может сделать это реальностью. Никакое извлечение не приведет к извлечению каких-либо файлов из такого файла. Если он утверждает, что это действительно правильно отформатированный сжатый файл .xz, тогда вы можете попробовать apt list xz-utils, чтобы убедиться, что пакеты xz установлены, хотя и Ubuntu, и Debian обычно требуют их установки для целей управления пакетами. . То же самое касается всех различных производных Ubuntu, таких как Lubuntu и Kubuntu.

Файловая утилита иногда просто возвращает данные без какой-либо другой информации. Хотя это может быть правильным для некоторых файлов, созданных онлайн-играми или двоичными редакторами, это не то, что вы должны увидеть в архиве, и может указывать на повреждение файла. Тип данных также теоретически может соответствовать некоторым проприетарным форматам, которые использовались в классическом Macintosh и более поздней версии OS X, которые в любом случае обычно не следует извлекать из Linux. Если файл сообщает вам, что сжатый архив на самом деле является исполняемым файлом Windows или MS-DOS, он вполне может быть вредоносной программой, предназначенной для атаки на ПК с Windows.



Вы можете увидеть что-то вроде theFileName.zip: данные архива ZIP, по крайней мере, V2.0 для извлечения в качестве возвращаемого типа. Вы можете переименовать файл из .tar.xz в .zip, чтобы правильно распаковать его в этом случае. Вы также можете переименовать его в .tar.bz2 или .tar.gz в зависимости от того, какой вывод выдает файловая утилита. Как только вы это сделаете, вы сможете извлечь их как обычно, даже если раньше вы не могли этого сделать. Если у вас есть ZIP-файл или что-то подобное, вы можете использовать file -z theFileName.zip, чтобы увидеть не только список того, что находится в архиве, но также и то, что утилита считает каждым типом.

Возвращение значения исполняемого файла Intel 80386 PE32 при запуске файловой утилиты в архиве с параметром -z может указывать на то, что внутри действительно есть программа Windows. Если это так, и вы обязательно выполнили несколько сканирований на наличие вредоносных программ, то после извлечения вы можете запустить его со слоем совместимости Wine. Теоретически некоторые строки, возвращаемые файлом, могут быть довольно длинными, поэтому вы можете нажать F11 в окне терминала. Это делает его достаточно большим, чтобы покрыть весь рабочий стол, без необходимости использования виртуальной консоли Linux.

Вы также можете попробовать использовать переключатель –apple, который дает вам старые идентификаторы файлов Apple, которые могут вам понадобиться при попытке поделиться файлами с пользователями других операционных систем.

Имейте в виду, что файл идентифицирует некоторые типы файлов как текст ASCII или Unicode, даже если пользователь может не думать, что они будут классифицированы как таковые. Файл .csv - это специальный файл электронной таблицы, сопоставленный с определенными текстовыми символами. Команда file вызовет файл .csv, созданный на машине Windows ASCII с терминаторами CRLF, и если вы создадите его на своей собственной машине Ubuntu, он может называть его текстом Unicode. Это не ошибка, указывающая на неправильное расширение файла, а просто особенность способа классификации файлов.

4 минуты на чтение