16.3 Содержимое и расширение файлов

16.3 Содержимое и расширение файлов

Если вы пользовались раньше операционными системами Windows, то вы скорее всего привыкли к тому, что тип файла определяется его расширением (последняя часть имени файла после точки). Например, файл «Голубой ледопад. mp3» — это музыка в формате mp3[63], а «Урания. txt» — это текстовый файл[64]. На самом деле всё немного не так, расширение — это всего лишь часть имени файла, которое никак не зависит от собственно содержимого, и тип файла обычно определяется по-другому[65]. Например, перейдите в Ubuntu в какую-нибудь папку с mp3 файлами и переключитесь на режим отображения списком[66]. В колонке «Тип» рядом с mp3 файлами вы увидите «аудио MP3»:

Рис. 16.1: Аудиофайлы.

Рис. 16.1: Аудиофайлы.

Теперь переименуйте любой файл, приписав ему вместо mp3 расширение ??. Видите, тип файла не изменился (Рис. 16.2). Если вы сейчас попробуете открыть такой файл, то он преспокойно откроется как mp3 в проигрывателе[67].

Рис. 16.2: Тип файла после изменения расширения.

Рис. 16.2: Тип файла после изменения расширения.

Конечно расширение нужно, мало того, Ubuntu полагается в первую очередь именно на него, то есть если вы переименуете mp3 файл, добавив к нему расширение txt, то Ubuntu будет считать такой файл текстовым. Однако то, что Ubuntu умеет смотреть не только на имя файла, спасает от многих проблем. Поэтому не удивляйтесь, когда встретите в Ubuntu файлы вообще без расширения, с которыми система преспокойно работает, ничего при этом не спрашивая.

Кстати, в Ubuntu есть мощная утилита определения типа файла, которая вообще не смотрит на имя и расширение, а пытается идентифицировать файл только по содержимому. Она бывает полезна, когда файл по каким-либо причинам не открывается, поскольку позволяет убедиться, что в нём содержаться данные именно того типа, которого вы и ожидаете там увидеть. Утилита эта консольная и называется file. Вот что она говорит о переименованном в текстовый документ аудио в формате mp3:

Рис. 16.3: Результат выполнения file для файла с расширением txt.

Рис. 16.3: Результат выполнения file для файла с расширением txt.

Обмануть утилиту file практически невозможно, а знает она о большинстве используемых форматов файлов.