LINUX.ORG.RU

К вопросу о опциональности расширения файлов.

 , , , ,


0

2

Давайте-ка на минутку отвлечёмся от практики и немного поразмышляем: есть такая сущность как расширения файлов. Однако по большому счёту и для самой Операционной Системы, и для пользователя расширения вовсе не обязательны, они опциональны.
Проведите небольшой эксперимент — вручную удалите у ваших -txt -mkv -jpg -avi файликов их расширения и внезапно окажется что не изменилось ровным счётом ничего — всё работает по-старому. Магия? Да, именно она.

Так что же это, дань традиции? Слой совместимости с устаревшими ОС? Зачем мы мы упорно прописываем новым файлам расширения?
/discuss

★★★★★

Расширение позволяет невооруженным глазом видеть тип файла. Правда бывают и злоупотребления, вот например как называется один фильм Robocop.1987.Unreleased.Sony.Bluray.REMUX.mkv

PatrickKilpatrick
()
Ответ на: комментарий от haku

И чего здесь удивительного? Парсинг имени файла работает намного быстрее эвристик libmagick.

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

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

На самом деле, на мой взгляд, расширения - УГ, т.к. они не однозначны, для одного расширения может иметься несколько типов, и для одного типа, наоборот, может иметься множество расширений.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 2)
Ответ на: комментарий от x3al

Нет, при чём тут Haiku (никогда даже не тыкал), просто размышляю о том, что расширения - УГ на сегодняшний день. Они были хороши, когда было 8.3, но не сейчас.

invy ★★★★★
()

Проведите небольшой эксперимент — вручную удалите у ваших -txt -mkv -jpg -avi файликов их расширения и внезапно окажется что не изменилось ровным счётом ничего — всё работает по-старому. Магия? Да, именно она.

4.2

dolphin, например, определяет по расширению - чем открывать. Удобство тут, главным образом в том, что БЫСТРО. Не надо применять хитроумный алгоритм определения типа файла по первым блокам и т.п...

BattleCoder ★★★★★
()

Во-первых, так сразу видно, что это за файл. Не нужно запускать всякие хитрые определялки, достаточно сделать ls. Во-вторых, текстовый редактор или IDE может по расширению файла угадать язык, для которого надо делать подсветку. По типу-то они одинаковые, plain text.

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

В BeOS ФС изначально задумывалась с учётом метаданных. В них кидали в том числе MIME-тип (потому, что могли). В хайке сейчас это воспроизвели.

http://www.haiku-os.org/docs/userguide/en/filetypes.html — как оно работает. Можно указать MIME для любого файла, оставив его расширение.

http://www.haiku-os.org/docs/userguide/en/workshop-filetypes attributes.html — гуй к этому.

Есть костыли, проставляющие MIME пришедшим снаружи файлам. Иногда сбоят.

Линуксы так не умеют, а дёргание libmagic ущербнее, чем расширения по всем параметрам.

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

И да, в BeOS это сделано не потому, что не нравятся расширения, а потому, что ФС изначально (http://www.haiku-os.org/docs/userguide/en/workshop-filetypes attributes.html) заточена под тонну метаданных. Линуксовые ФС формально умеют xattr, но если пытаться на них реализовать query из гайки — оно будет слишком сильно тормозить. Кстати, поэтому все полнотекстовые индексаторы и семантичные десктопы юзают внешнюю БД.

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

По типу-то они одинаковые, plain text.

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

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

оно будет слишком сильно тормозить

sysctl --write vm.vfs_cache_pressure=0 и любая внешняя бд соснёт с проглотом.

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

При чём тут это? Гайка умеет в индексы по любым атрибутам. Какая линуксовая ФС может сделать индекс по конкретному xattr?

А то, что ты написал, внешние БД и так умеют.

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

Ну насчёт полного набора метаданных я не знаю. Возможно это оверкилл. А вот типы данных как-то культурно хранить - было бы неплохо.

invy ★★★★★
()

Ага шяз, а всякие расширения типа .c .h .README?

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

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

com.java,utils...

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