Расширения файлов в ubuntu

Обновлено: 30.06.2024

Я не знаю, каково точное расширение исполняемого файла. Это .deb или .tar.gz ?

Не ответ, но я хотел бы добавить, что ВСЕ в LINUX - это ФАЙЛ, поэтому наличие расширений в виде .exe никогда не имеет значения. @tijybba Философия дизайна "все - это файл" совершенно не связана с .exe расширениями, которые не нужны для собственных исполняемых файлов. Первый объясняет содержание /dev ; последнее связано с разрешениями на выполнение и проверкой внутренней части файла, чтобы определить, какой это тип файла. @ Eliah Kagan - Это была просто базовая информация, так как в Windows расширение необходимо для выполнения, ну, в Linux это не так, что касается разрешений для исполняемых файлов , оно требует немного больше ноу-хау о доступе пользователя Sudo и проблем безопасности Underlaid , который, как я догадался, кто-то уточнит в ответе в качестве его последней части, если вообще понадобится, вот почему я разместил его как комментарий, а не как ответ. @tijybba Но «все», будучи файлом, не имеет ничего общего с темой этого вопроса, не так ли? Я полагаю, что я неправильно прочитал эту часть, в которой говорится «что такое exe- файл в Ubuntu?», Я подумал , что это исполняемый файл , но теперь с вашей нетерпеливой помощью кажется, что это означает «что такое exe- файл в Ubuntu?». Если это крайне неуместно, дайте мне знать, что я был бы рад удалить его (ошибки - большой опыт обучения: D).

В Windows нет стандартного File-Extention, подобного файлу ".exe".

В Linux практически любой файл может быть исполняемым. Окончание файла просто описывает (но не обязательно), что или как файл «исполняется».

Например, скрипт оболочки заканчивается на .sh и «выполняется» через оболочку bash.

В своем вопросе вы спрашиваете .deb и .tar.gz. Хорошо. Файл .deb устанавливает программное обеспечение в вашей системе (пожалуйста, будьте осторожны!), А файл .tar.gz представляет собой сжатый файл, такой как .zip, который вы могли бы узнать по Окна.

Файл .deb также больше похож на .zip, чем на .exe. Дело в том, что .deb не выполняется сам по себе , он извлекается, интерпретируется и устанавливается другим приложением. Это другое приложение, обычно являющееся Центром программного обеспечения, который также служит установщиком. Linux меньше зависит от расширений по сравнению с Windows и, следовательно, решает возможность выполнения на основе разрешений, а не расширений.

Я бы суммировал систему следующим образом:

Поэтому, ответьте на свой оригинальный вопрос, расширения нет, или редко, это .elf или .bin .

Это сделано вики-сообществом, поэтому любой может добавить запись.

Я никогда не видел расширение .elf, но видел расширение .bin довольно часто. В то время как другие ответы сосредоточены на том факте, что «любой» файл может быть исполняемым, этот ответ действительно бьет по голове, в то время как высказывание «все» может быть исполняемым, на самом деле не информативно и не правда, а скорее исключительно. Я мог бы переименовать любой файл в Windows в .exe, и он попытается выполнить его, но не обязательно будет работать, в Linux он такой же, если он не предназначен для выполнения, он не будет работать . Моя проблема много раз загружает пакет, и не совсем понимая, с чего начать, но, конечно, rtfm. Вы должны добавить расширение .bin (как Windows, эквивалентное .exe) Это не расширение, но для меня было полезно узнать, что формат "PE" в Windows эквивалентен формату "ELF" в Linux

Концепция исполняемого файла отличается в Unix / Linux от Windows.

Windows

Linux / Unix

Каждый файл имеет исполняемый бит, поэтому любой файл может быть выполнен, в отличие от Windows. Чтобы увидеть, является ли файл исполняемым, вы можете проверить его свойства (вкладка «Разрешения») или даже увидеть их помеченные в терминале (все они отмечены *).

Даже текстовые файлы (например, сценарии оболочки) могут иметь свои исполняемые биты и запускаться как единое целое.

Отдельные исполняемые биты существуют для пользователя, группы и других. Использование этих битов может ограничить, кто может выполнять программу. Существуют дополнительные биты для SUID и SGID, чтобы заставить программу работать от имени пользователя или группы, которой принадлежит файл. Выше приведены некоторые неточности: 2) «у каждого файла есть исполняемый бит»: есть три исполняемых бита (владелец, группа и другие), поэтому один может разрешить выполнение файла самому себе, но не другим. Также есть бит setuid для «execute-as-owner» и setgid «execute-as-group». 2) «любой файл может быть выполнен»: не так. биты разрешения являются обязательным, но недостаточным условием для успешного выполнения файла. Немедленный сбой произойдет, например, если файл на самом деле не может быть загружен и запущен (Ссылка: магические числа файлов man magic , ELF man elf и строка хэш-бэнг man execve )

Чтобы узнать, что операционная система UNIX думает о типе конкретного файла, вы используете команду file:

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

Файл сценария будет выглядеть так:

Случайный текстовый файл:

Он даже достаточно умен, чтобы правильно идентифицировать программу Windows, если у вас есть одна, лежащая на вашем компьютере с UNIX:

И когда он не может понять, что это за файл (но может открыть его), он называет это данными:

Выполнение файла в Linux вообще не связано с именем файла или расширением. Любой файл может быть потенциально выполнен при условии, что он обрабатывается binfmt механизмом ядра (и что для него установлены разрешения на выполнение).

Наиболее распространенным форматом для исполняемого файла является ELF , хотя некоторые ядра могут быть скомпилированы для поддержки старого a.out формата. (Для получения полной технической информации, binfmt_elf.c это где искать.)

binfmt_misc позволяет для регистрации других обработчиков, как описано здесь .

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

Хотя это и не связано напрямую, file команда должна указать вам, является ли файл исполняемым файлом ELF или чем-то еще.

Другой аспект, который может возникнуть, когда вы хотите «запустить» файл, - это иметь инструмент проводника, который использует расширения регистра, чтобы иметь возможность запустить программу, которая откроет эти файлы. Это то, что произойдет, если вы дважды щелкнете по a .txt , .tar.gz или .deb , например: файлы не являются ни исполняемыми, ни исполняемыми, но то, что вы используете для двойного щелчка, выбирает, какой исполняемый файл нужно открыть, чтобы открыть эти файлы.

@ObsessiveFOSS, но заслуживает ли он снижения? Никто не упомянул моно до моего ответа. Никакой ответ здесь действительно не говорит о том, как на самом деле работают исполняемые файлы Linux (см. Мой комментарий о binfmt в отношении принятого ответа). Я не понизил. Я чувствовал, что голосование должно остаться как есть. @ObsessiveFOSS, нет проблем. Я также заметил, что вопрос был отредактирован с тех пор, как я на него ответил, немного изменив его значение (изначально я понимал его как «У меня есть исполняемый файл, я не могу его запустить . ») и уменьшил свой ответ актуально действительно.

В Windows .exe-файл - это компьютерный файл, который заканчивается расширением «.exe», которое обычно называют исполняемым файлом. Когда вы нажимаете exe-файл, встроенная подпрограмма автоматически выполняет код, который может привести в движение несколько функций. EXE-файлы обычно используются для установки файлов в операционной системе Windows.

Кроме того, у вас есть файлы .tar, обычно известные как сжатые файлы. В версиях Linux, таких как Ubuntu, функции используются в различных дистрибутивах программного обеспечения, причем большая часть исходного кода программного обеспечения доступна в формате tar.gz. Из этого можно предположить, что tar. gz - это форма хорошо известного формата .tar, который используется для архивирования.

В Ubuntu, с другой стороны, формат файла .deb больше похож на файл .exe в windows. Когда вы открываете его, центр программного обеспечения обрабатывает его код и устанавливает содержащуюся в нем программу, такую ​​как исполняемый файл.

Даже если вы по-прежнему можете устанавливать программное обеспечение и пакеты из исходного формата (tar.gz), наиболее подходящим форматом для установки программного обеспечения является .deb. Возьмем, к примеру, Ubuntu Software Center; все приложения, которые он содержит, на самом деле являются файлами .deb. В целом, в linux почти каждый формат файла (включая .deb и tar.gz, а также хорошо известные файлы bash .sh) может вести себя как исполняемый файл, так что вы можете установить пакеты или программное обеспечение с этим.

Я бы лучше сравнил файлы .deb в системах, производных от Debian, с файлами MSI для установщика Microsoft .

В Windows нет эквивалента расширению exe, указывающему на то, что файл является исполняемым. Вместо этого исполняемые файлы могут иметь любое расширение и, как правило, вообще не иметь расширения .

Linux / Unix использует права доступа к файлам , чтобы указать , если файл может быть выполнен. В частности, есть разрешение на выполнение файла, которое сообщает системе, что этот файл разрешено выполнять. Однако отсутствие этого разрешения не означает, что файл не является исполняемым; просто, что соответствующий пользователь не имеет права пытаться выполнить его. Точно так же наличие этого разрешения не всегда указывает на то, что файл является допустимым исполняемым файлом.

Linux / Unix имеет двоичный формат исполняемых файлов, называемый ELF, который эквивалентен двоичным исполняемым форматам PE (Windows) или MZ / NE (DOS), которые обычно имеют расширение .exe.

Тем не менее, другие типы файлов могут быть исполняемыми, в зависимости от оболочки. Как правило, если вы пытаетесь выполнить файл, который система не распознает как двоичный исполняемый файл (например, формат ELF), то он интерпретируется текущим интерпретатором оболочки. Это выполняет тот же эффект, что и пакетные файлы в Windows или DOS, за исключением того, что опять-таки это не расширение, которое определяет его тип или способ его выполнения.

Ух, я тоже почти ответил на это. Посмотрите на дату, этот пост является динозавром.

Файлы EXE и DLL являются переносимыми исполняемыми файлами. Они основаны на Unix-файлах PE / COFF.

В Ubuntu у вас нет определенного расширения для исполняемого файла. Обычно это файлы, которые названы в честь приложения, к которому они относятся.

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

В файловой системе Unix бинарные исполняемые файлы обычно хранятся в собственном месте.

  1. / bin (основные двоичные файлы)
  2. / sbin (системные двоичные файлы)
  3. / usr / bin (двоичные файлы приложения)

тогда как другие ресурсы приложения могут храниться в / usr / lib / или / usr / share /

Файл deb более корректно соответствует файлу msi в windows (то есть установщику пакета).

Начинающим пользователям Ubuntu зачастую нелегко привыкнуть к некоторой специфике обращения с файлами в этой системе. Однако на самом деле всё крайне просто и очень элегантно, в этой статье я постараюсь объяснить все тонкости, чтобы потом при использовании системы вы не удивлялись некоторым непонятным с первого взгляда вещам.

Названия файлов и папок

Я уже упоминал, что в Linux все имена файлов являются регистрозависимыми, то есть вы спокойно можете создать в одном каталоге два файла с одинаковыми именами, но записанными в различных регистрах, например, Ubuntu.txt и ubuntu.txt.

Кроме того, я так же говорил, что вы можете использовать в именах файлов абсолютно любые символы, которые пожелаете, кроме прямого слеша / 1) , однако в силу некоторых причин я бы не рекомендовал использовать следующие символы: \ < > * , а также символы переноса строки и табуляции. Вы можете подписывать свои файлы китайскими иероглифами, рунами, греческими буквами и вообще чем угодно, если вам конечно будет удобно использовать такие имена 2) .

Ну и напоследок ещё раз напомню, что разделителем каталогов в пути к файлу в Linux всегда является символ / , в отличие от Windows, в которой используется \ .

Доступ к файлам

В предыдущей статье я уже рассказал про права доступа к файлам, поэтому лишь кратко напомню: в Linux можно с помощью механизма разграничения прав ограничить доступ к файлу на редактирование или же просто полностью запретить доступ к содержимому. Например, все системные конфигурационные файлы закрыты для редактирования обычному пользователю, если вы попытаетесь сохранить какие-нибудь изменения в такой файл, Ubuntu вам скажет, что у вас не хватает на это прав. Некоторые же файлы вы даже не сможете открыть и посмотреть их содержимое. Если вы до сих пор не знаете, как это обойти, внимательно прочитайте предыдущую статью.

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

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


Теперь переименуйте любой файл, приписав ему вместо mp3 расширение ?? .


Видите, тип файла не изменился. Если вы сейчас попробуете открыть такой файл, то он преспокойно откроется как mp3 в проигрывателе 7) .

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

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


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

Исполняемые файлы

В вопросах исполняемых файлов, то есть, если по простому, обычных программ, Ubuntu кардинально отличается от Windows. В Windows исполняемые файлы имеют расширение exe (в основном), а внутри представляют из себя нечитаемый набор байтов. А в Ubuntu исполняемым может быть даже текстовый файл. Сразу скажу, что exe - это программы для Windows и в Ubuntu они не работают без Wine (приложения для запуска исполняемых файлов Windows в Linux), но вообще говоря и в Wine они работают далеко не всегда.

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

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

Мало того, на самом деле это магическое свойство-переключатель исполняемости является одним из трёх прав доступа, о которых я мельком упоминал в предыдущей статье. Я говорил, что у каждого файла есть три группы прав доступа - для пользователя-владельца, для группы-владельца и для всех остальных, каждая группа состоит в свою очередь из трёх прав: на чтение, модифицирование и выполнение. Так вот, право на выполнение и является тем самым волшебным переключателем исполняемости.

Из этого вытекает весьма забавное свойство: один и тот же файл может быть одновременно и исполняемым, и не исполняемым, допустим, если на его выполнение есть права только у пользователя-владельца. Тогда пользователь, которому принадлежит этот файл, сможет его запустить как программу, а для всех остальных он будет обычным файлом с данными.

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

Текстовые файлы

Текстовые файлы в Ubuntu повсюду. Все настройки хранятся в виде текстовых файлов, исходные коды всех программ представляют из себя текстовые файлы, многие программы в Ubuntu являются на самом деле скриптами, то есть тоже текстовыми файлами. И естественно Ubuntu умеет работать с текстовыми файлами как угодно. И этой темы даже не пришлось бы касаться, если бы не одна проблема операционных систем Windows. Дело в том, что в Windows до сих пор кое-где ещё используется устаревший в 90-х прошлого столетия способ сохранения обычного текста, в частности, в текстовых файлах 8) .

На самом деле большинство файлов откроется в стандартном текстовом редакторе Ubuntu без проблем 9) , но всё же иногда попадаются файлы, которые отображаются «кракозябрами». В этом случае необходимо немного помочь Gedit и указать кодировку файла вручную. Для этого закройте в редакторе вкладку с нечитаемым файлом, затем выберите в меню программы пункт «Открыть», найдите свой файл и обратите внимание на поле «Кодировка символов», находящееся внизу диалогового окна открытия. В этом поле необходимо указать нужную кодировку, после чего файл откроется уже в пригодном для чтения виде. Кстати, рекомендую такие файлы сразу сохранять в utf-8 , дабы в дальнейшем не возникало с ними проблем.

Существуют и более лёгкие способы работы с кодировками, например, плагин для Gedit, позволяющий менять кодировку у открытых файлов без необходимости их переоткрывания. Кроме того, существуют утилиты для автоматического перекодирования файлов в utf8 , например, enca . Можно также управлять механизмом автоопределения кодировки в Gedit, это делается через редактор конфигурации, про который я немного расскажу в одной из последних статей.

Напоследок хочется сказать, что очень рекомендуется так или иначе перевести всю текстовую информацию на использование utf8 , поскольку фактически только эта кодировка нормально распознаётся везде и всегда, а в будущем скорее всего только она и будет использоваться.

Аудиофайлы

В случае с аудиофайлами также существует проблема с кодировками, только проявляется она в тегах. К сожалению, некоторые популярные Windows-программы редактирования тегов как и текстовые редакторы до сих пор используют устаревшую кодировку. Некоторые плееры Ubuntu поддерживают указание кодировки воспроизводимых файлов, однако гораздо предпочтительней обработать всю вашу медиатеку специальными программами, которые автоматически приведут все теги в нормальный вид, дабы в дальнейшем не было проблем. Самой популярной программой такого рода является EasyTag, она доступна в стандартных репозиториях, так что почти сразу после прочтения следующей статьи вы сможете ей воспользоваться.

Что же касается форматов, то Ubuntu поддерживает все существующие аудио-форматы, однако для воспроизведения некоторых требуются дополнительные кодеки. О том, как их поставить, я расскажу в одной из следующих статей.

Изменение ассоциаций файлов с приложениями

Когда вы немного освоитесь в Ubuntu, у вас возможно возникнет желание познакомиться с доступными в изобилии в репозиториях программами. И вскоре после того, как вы выберите из бесчисленного множества альтернатив подходящие для себя приложения, перед вами скорее всего встанет вполне закономерный вопрос: а как заставить определённые типы файлов открываться в установленных вами программах, а не в доступных по умолчанию?

Ответ на него весьма прост. Нажмите правой клавишей мыши на любом файле нужного типа, выберите в появившемся меню пункт «Свойства» и в открывшемся окне перейдите на вкладку «Открывать в программе»:


В списке будут содержаться все приложения, которые сообщили Ubuntu о поддержке ими выбранного типа файлов. Ну а отмечена будет программа, используемая по умолчанию. Вам останется только выбрать нужное приложение и закрыть окно, после чего файлы указанного типа начнут открываться по умолчанию в выбранном вами приложении. То есть если вы хотите, например, чтобы фильмы в формате avi открывались в установленном вами VLC, а не в медиапроигрывателе Totem, то вам всего лишь надо в свойствах любого avi файла отметить VLC в качестве приложения по умолчанию.

Кстати, вы легко можете включить свои приложения в список, нажав на кнопку «Добавить» внизу окна и выбрав одну из установленных в системе программ или введя свою команду запуска. Таким образом вы можете настроить ассоциации с любыми приложениями для всех используемых вами типов файлов.

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

В качестве заключения

В этой статье я постарался подробно рассказать об основных особенностях в работе с файлами в Ubuntu. Надеюсь, вы смогли разобраться что к чему и уловить основные моменты. Напоследок хочется заметить, что Ubuntu без какого-либо дополнительного программного обеспечения поддерживает большинство распространённых форматов файлов, специфические файлы же скорей всего можно как минимум сконвертировать в один из стандартных форматов с помощью различных программ, в изобилии доступных в репозиториях Ubuntu.

Чуть позже я расскажу как поставить пакет полной поддержки мультимедиа форматов, который не входит в Ubuntu по умолчанию из-за несовершенного законодательства некоторых стран, с которым, к сожалению, приходится считаться, но для этого необходимо рассмотреть следующую очень важную тему:

Философия операционных систем Unix гласит, что все есть файл. Это значит, что вся работа с этой операционной системой сводится к файлам. Поскольку Linux можно считать тоже потомком Unix, то эта концепция применима и здесь. Файлы это объекты, в которые мы записываем информацию и наши данные, исполняемые файлы, но кроме этих привычных нам понятий здесь есть файлы специального назначения - файлы устройств, файлы туннелей, сокетов и многое другое. Эта тема очень слабо освещена в интернете, поэтому в нашей сегодняшней статье мы рассмотрим типы файлов linux.

Пространство нашего жесткого диска занято файлами разных типов. Например, взять даже наш корневой раздел (/), при создании файла, файловая система записывает его в определенном формате на нужное физическое место жесткого диска. Всегда, для работы с файлами используется файловая система, но не всегда она записывает файлы на диск, файловая система может работать на лету, генерируя файлы, например, как procfs, с помощью которой может быть выполнена настройка ядра linux или записывать файлы в оперативную память, как tmpfs расположенная в папке /tmp. Но все это не имеет значения, ведь в любом случае мы имеем дело именно с файлами.

В системе Linux нет различий между каталогами и файлами. Но каталоги могут объединять другие файлы в группы, чтобы их было легче найти и использовать. Все аппаратные устройства представлены в виде файлов и находятся в каталоге dev, только через эти файлы программы могут работать с ними.

Преимущество использования файлов как для обычной информации, так и для устройств, в том, что не нужно реализовать отдельный набор API интерфейсов для каждого устройства, с ним могут работать все стандартные утилиты Linux и API интерфейсы.

Типы файлов в Linux

Файлы в операционной системе Linux можно поделить на три основных типа:

  • Обычные файлы, для хранения информации
  • Специальные файлы - для устройств и туннелей
  • Директории

Дальше рассмотрим более подробно эти типы файлов linux.

Обычные файлы

Это файлы, с которыми мы привыкли работать каждый день, они могут содержать текст, исполняемые инструкции для программ, изображения или другую информацию. Это самый распространенный тип файлов, которые вы можете найти в системе Linux. Рассмотрим небольшой список относящихся сюда файлов:

  • Текстовые файлы
  • Исполняемые файлы
  • Файлы изображений
  • Файлы архивов
  • Файлы библиотек программ
  • И другие подобные типы

Утилита ls может определять тип файла в режиме списка, обычные файлы обозначаются черточкой, например:

files1

Эта статья была бы неполной, если бы мы рассматривали типы файлов, но не упомянули о форматах. Дело в том, что все обычные файлы сохранены в определенном формате, это нужно, чтобы система знала какой программой нужно открывать файл.

Посмотреть форматы файлов linux можно с помощью утилиты file. Например:

files2

Система сообщила что это исполняемый файл, а теперь посмотрим обычный, текстовый:

files3

Утилита умеет распознавать все известные форматы файлов. Чтобы узнать вывести все доступные форматы файлов linux наберите:

Специальные файлы

Специальные файлы намного интереснее, они предназначены для обмена информации с ядром, работы с устройствами или общения между программами. Такие файлы могут тоже быть нескольких типов, в зависимости от назначения.

Блочные файлы - это файлы устройств, которые обеспечивают буферизованный доступ к аппаратным компонентам. При записи данных на жесткий диск или на флешку нет смысла записывать данные сразу же после их поступления. Так мы будем только понапрасну расходовать ресурс устройства и энергию. Можно подождать пока наберется достаточное количество данных а потом записать их за один раз. Эти данные и собираются в буфере. С помощью таких файлов, файловая система и другие утилиты могут обращаться к драйверам аппаратных устройств. Такие файлы могут передать большой блок данных за небольшой один раз.

Утилита ls обозначает блочные файлы буквой b, например, выберем все блочные файлы из каталога /dev:

ls -l /dev/ | grep "^b"

files

Утилита file, которую мы рассматривали в предыдущем разделе тоже умеет определять типы файлов:

files4

Символьные файлы обеспечивают не буферизованный доступ к аппаратным компонентам и ядру. Поскольку у них нет буфера, они позволяют передавать только по одному символу за один раз. А в остальном, это такие же файлы устройств, как и блочные файлы.

Вы также можете отфильтровать их с помощью ls. Символьные файлы обозначаются буквой c (character):

ls -l /dev/ | grep "^c"

files5

Символические ссылки - это файлы, которые указывают на другие файлы в системе по их имени. Они могут указывать как на обычные файлы, таки на каталоги или другие типы файлов в linux. По сути, это те же ярлыки Windows. В Linux еще есть жесткие ссылки, но они не имеют отношения к типу файлов, потому что реализованы на уровне файловой системы и считаются обычными файлами. Поскольку они указывают на одно и то же место на диске, это два разных файла, с одинаковым содержимым.

Но вернемся к символическим ссылкам. Утилита ls обозначает их буквой l (link):

ls -l /dev/ | grep "^l"

files6

Создавать символические ссылки можно с помощью утилиты ln. Например:

ln -s file1.txt file2.txt

Можете использовать ls чтобы убедиться в том, что это ссылка. Проверьте таким же образом жесткие ссылки, чтобы убедиться, что то что я сказал о них - правда.

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

Обозначаются такие типы файлов linux буквой p (pipe):

ls -l /dev/ | grep "^p"

files7

Чтобы создать именованный тоннель вы можете использовать утилиту mkfifo:

echo "test test test" > pipe1

После создания туннеля мы передали в него данные, и оболочка стала не интерактивной. Она будет ожидать пока данные будут прочитаны на другом конце туннеля. Открываем другую оболочку и читаем данные:

while read line ;do echo "Data: '$line' "; done<pipe1

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

Файлы сокетов обозначаются буквой s:

ls -l /dev/ | grep "^s"

files11

Создать сокет можно с помощью функции socket() на языке программирования Си, чтение и запись выполняется системными вызовами read() и write(). Но нам сейчас не нужно писать реальную программу, будет достаточно немного поиграться. Поэтому воспользуемся утилитой nc. Создаем Unix сокет:

nc -lU socket.sock

files9

Подключаемся к нему из другой консоли:

nc -U socket.sock

Все данные, которые вы будете набирать в одной из консолей будут отправляться на другую после нажатия Enter, связь работает в обоих направлениях.

Каталоги

Это специальные файлы, которые позволяют объединять другие и каталоги в группы для более простой навигации и поиска. Естественно, они могут содержать как обычные, так и специальные файлы, одним словом любые типы файлов ос linux. В системе Linux, файлы организуются в папки начиная от корня (/)

Обозначаются каталоги буквой d (directory):

files10

Создать каталог в linux можно с помощью команды mkdir:

Заключение

Теперь у вас более четкое представление о том, почему в linux все является файлами, а также какие типы файлов в linux существуют в вашей системе. Вы можете найти более подробную информацию по каждому виду файлов в интернете, но если у вас остались вопросы, можете задать их в комментариях!

Найдите тип файла любого файла или группы файлов с помощью команды FILE

Большинство людей смотрят на расширение файла, а затем угадывают тип файла с этим расширением. Например, когда вы видите файл с расширением gif, jpg, bmp или png, вы думаете о файле изображения, а когда вы видите файл с расширением zip, вы предполагаете, что файл был сжат с помощью утилиты сжатия zip ,

В действительности, файл может иметь одно расширение, но быть чем-то совершенно другим. В Linux вы узнаете истинный тип файла с помощью команды file .

Как работает команда File

Команда file выполняет три набора тестов для файла:

  • Тесты файловой системы
  • Магические тесты
  • Языковые тесты

Первый набор тестов для возврата правильного ответа приводит к печати типа файла.

Тесты файловой системы проверяют отдачу от системного вызова stat. Программа проверяет, является ли файл пустым и является ли он специальным файлом. Если тип файла найден в системном заголовочном файле, он возвращается как допустимый тип файла.

Магические тесты проверяют содержимое файла и, в частности, несколько байтов в начале, которые помогают определить тип файла. Различные файлы используются, чтобы помочь сопоставить файл с его типом файла, и они хранятся в:

Переопределите эти файлы, поместив файл в вашу домашнюю папку с именем $ HOME/.magic.mgc или $ HOME/.magic.

Если ни один из тестов не работает, выводом являются данные.

Как использовать команду «Файл»

Команда file может быть использована следующим образом:

Например, представьте, что у вас есть файл с именем file1, и вы запускаете следующую команду:

Вывод примерно такой:

Различные типы файлов дают разные результаты:

  • Тип файла ODS : электронная таблица OpenDocument
  • Тип файла PDF : документ PDF, версия 1.4
  • Тип файла CSV : текст ASCII, с очень длинными строками, с индикаторами строк CRLF

Настройте вывод из команды File

По умолчанию команда file предоставляет имя файла и все детали над файлом. Если вы хотите, чтобы только детали без имени файла повторялись, используйте следующий переключатель:

Вывод примерно такой:

Вы также можете изменить разделитель между именем файла и типом. По умолчанию в качестве разделителя используется двоеточие, но вы можете изменить его на что угодно, например на символ канала, следующим образом:

Вывод примерно такой:

Обработка нескольких файлов

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

Например, откройте файл с именем testfiles с помощью редактора nano и добавьте в него следующие строки:

  • /И т.д./пароль
  • /etc/pam.conf
  • /И т.д./неавтоматического

Сохраните файл и выполните следующую команду:

Результат будет примерно таким:

  • /etc/passwd: текст ASCII
  • /etc/pam.conf: текст ASCII
  • /etc/opt: каталог

Сжатые файлы

По умолчанию, когда вы запускаете команду file для сжатого файла, вы видите что-то вроде этого:

Хотя это говорит о том, что файл является архивом, вы не знаете его содержимого. Вы можете заглянуть внутрь zip-файла, чтобы увидеть типы файлов в сжатом файле. Следующая команда запускает команду file для файлов внутри ZIP-файла:

Вывод теперь показывает типы файлов файлов в архиве.

Большинство людей используют команду file, чтобы найти основной тип файла.Чтобы узнать больше о возможностях, которые предлагает команда file, введите в окне терминала следующее:

Эта команда открывает документацию по программному обеспечению Linux, включенную в систему.

Если вы пользовались раньше операционными системами 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 практически невозможно, а знает она о большинстве используемых форматов файлов.

Содержимое, разбивающее на секции

4. Преобразовывая содержимое

9.2. Генерируемое содержимое

9.2. Генерируемое содержимое В некоторых случаях у вас может возникнуть необходимость в том, чтобы браузер пользователя отображал на экране содержимое, которое не принадлежит так называемому «дереву» HTML-документа. Хорошим примером может служить нумерованный список. Без

Расширение OCB

Расширение OCB В ряде случаев у вас может возникнуть необходимость расширения OCB. Процедура эта является относительно безболезненной. Обычно OCB расширяют дополнительными флагами, характеризующими каждый конкретный open(). Один такой флаг можно было бы использовать с

ГЛАВА 17. Подгружаемое содержимое

ГЛАВА 17. Подгружаемое содержимое В предыдущей части мы начали заниматься Web-программированием: изучили язык JavaScript, правила написания Web-сценариев и библиотеку Ext Core и создали поведение для наших Web-страниц, причем весьма развитое. Теперь наш Web- сайт выглядит вполне

Расширение

Расширение Расширяя свое укрытие, вы можете добавить комнату для карт, пристань для лодок и рыбалки, фермы и башню для обзора. Для дополнительной защиты вы можете оградить свой дом массивной каменной стеной. Неплохо будет построить ферму мобов рядом с домом.

Содержимое заголовков

Содержимое заголовков Теперь, после рассмотрения структуры системных объектов и их отображения на сегменты памяти можно перейти к рассмотрению содержимого заголовков сегмента и ЕРА. Как мы видели на рисунке 5.6, заголовок сегмента занимает первые 32 байта каждого

Содержимое списков

Содержимое списков Для формирования содержимого некоторых списков стандартных диалогов Windows используется ряд стандартных параметров (о ветвях, используемых для формирования списков стандартных диалогов, будет рассказано чуть позже). Эти параметры создаются в дочерних

Содержимое шаблонов безопасности

Содержимое шаблонов безопасности Все шаблоны безопасности содержат следующие разделы: Политики учетных записей, Локальные политики, Журнал событий, Группы с ограниченным доступом, Системные службы, Реестр и Файловая система. Вкратце рассмотрим каждый из этих

Форматируем содержимое странички

Форматируем содержимое странички Для того чтобы текст на наших страничках смотрелся красиво, его необходимо отформатировать. Для этого есть несколько тегов, вот ими сейчас и

Рекомендуемое расширение для файлов баз данных - *.ib

Рекомендуемое расширение для файлов баз данных - *.ib Теперь рекомендуемым разрешением для файлов баз данных становится ib - вместо привычного gdb. Прежде всего эта смена расширения связана с тем, что при использовании InterBase на Windows XP эта операционная система распознает файлы

Читайте также: