Email or username:

Password:

Forgot your password?
Top-level
Григорий Клюшников

Dr. Quadragon ❌, старая макось была не юниксом, там всё совсем своё, ни с чем не совместимое и вообще изначально на паскале. А как графические файл-менеджеры в линуксе определяют чем открывать файл, когда ты на него нажал, если не по расширению?

9 comments
Dr. Quadragon ❌

@grishka но новая-то - юникс.

> А как графические файл-менеджеры в линуксе определяют чем открывать файл, когда ты на него нажал, если не по расширению?

По содержанию, при помощи магии. Читаем первые n байт файла, и понимаем, с чем имеем дело. Если непонятно (например, текст, но ЧТО за текст - неясно), вот тогда обращаемся к имени. Как-то так.

@dettlaff

Григорий Клюшников

Dr. Quadragon ❌, а вот если я придумал свой формат файла и написал программу, которая работает с ним, как мне сказать линуксу, что мои файлы надо открывать моей программой?

Dr. Quadragon ❌

@grishka если вообще совсем непонятно, тебя спросят.

@dettlaff

Dr. Quadragon ❌

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

@dettlaff

Dr. Quadragon ❌

Ну, а если это текст, подлежащий исполнению (программа на баше или питоне, скажем) - то есть такая приятная штученька как shebang.

В начале файла пишешь
```
#!/usr/bin/python
```

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

Работает с некоторыми конфигами тоже - например 3proxy так делает.

vovᴀɴıᴜᴍ⁺

@grishka@friends.grishka.me Если точнее, никсы умеют опознавать файлы по расширению, но это не единственный способ.
Есть и опознание по магическим числам (первые 4 байта файла часто содержат уникальную сигнатуру), и более сложные методы (чтобы отличить, например, текстовый файл от неизвестного бинарного).
Есть стандартная утилита
file, в ней можно посмотреть все подробности.

Vftdan

@grishka
freedesktop.org/wiki/Specifica

Или если тип исполняемого файла, например чтобы ./file.exe запускался в wine, то en.m.wikipedia.org/wiki/Binfmt
@drq @dettlaff

yesfreenet

@drq
Меня больше удивляет, когда пытаешься открыть показ файла, кликаешь, а оно тебе открывает проводник VScodium или как оно там 😃

@grishka @dettlaff

Go Up