LINUX.ORG.RU

Парсинг заголовков файлов в файловых менеджерах


0

1

Если подать exec к графическому файлу картинки, то ядро вернёт ошибку, даже если разрешены прав на запуск? Но чтобы корректно открывать файлы и показывать значки наутилус всё же парсит заголовки файлов? Ну, парсинг помогает например с shebang-последовательностью, в которой явно указан путь к программе, для которой нужно подать exec, а как быть с картинками? Ведь в начале таких файлов не указаны пути. Как наутилус узнаёт путь к исполняемому файлу графического редактора, к которому нужно подать exec?


Как наутилус узнаёт путь к исполняемому файлу графического редактора, к которому нужно подать exec?

1) При помощи libmagic определяет тип файла (в т.ч. mimetype)
2) По mimetype и по общесистемной базе находит, с какой программой ассоциирован данный mimetype

AITap ★★★★★
()

Почему столько школьников в эти дни на ЛОРе? Каникулы еще не кончились что ли?

geekless ★★
()

а как быть с картинками? Ведь в начале таких файлов не указаны пути.

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

Что касается запуска исполняемых файлов из наутилуса - то это совсем другой тип действия (как сейчас помню назойливый диалог «запустить на выполнение или открыть с помощью...?»).

segfault ★★★★★
()
Ответ на: комментарий от segfault

Все банально - он тупо хранит таблицу приложений, которые открывают данный тип файла.

А как он узнаёт тип файла? Ведь чтобы узнать тип, нужно отпарсить заголовок - он при открытии папки парсит каждый файл?

dump
() автор топика
Ответ на: комментарий от dump

он при открытии папки парсит каждый файл?

Не обязательно. Многие типы файлов он берет из расширения, остальные - парсит.

segfault ★★★★★
()
Ответ на: комментарий от anonymous

Расширение — это в вендах. В линуксе есть имя файла и его содержимое.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.