Ассоциация (ассоциирование) файла – это привязывание файла по расширению к программе, которая будет обрабатывать его при последующем запуске. К правило, для файлов существует множество альтернативных программ, которые могут отрывать данное расширение файла. К примеру аудио файлы формата mp3 можно прослушивать в различных аудио проигрывателях. При двойном нажатии мыши открывается программа обработки файла по умолчанию.
У меня возникла необходимость изменения ассоциации файла в linux. Существует несколько способов ассоциации файлов с приложениями. Я разберу изменение ассоциации на системном уровне. Это означает, что при создании нового пользователя в системе будет применяться программа ассоциации, выбранная мною. Это очень удобно, когда на ПК есть несколько учётных записей и для каждой нужно настроить какими программами открывать выбранные файлы.
Я буду всё описывать на примере привязки формата *.fb2 к читалке электронных книг Fbreader, а Вы уже подставьте для себя свой формат.
Всё, что от нас требуется – так это добавить/изменить строку конфигурации, определяющую системную ассоциацию файлов. Данный файл в ОС Debian/Ubuntu находится в директории /usr/share/applications/
В ней нас интересую два файла:
1) defaults.list устанавливает программу по умолчанию для открытия определённого формата
2) mimeinfo.cache отвечает за опцию «рекомендуемые программы» (нажав правой кнопкой мышки на файле, в контекстом меню увидите "открыть с помощью").
Я добавил новую строку в файлы defaults.list и mimeinfo.cache, поскольку система не знала чем открывать формат fb2:
application/x-fictionbook+xml=FBReader.desktop;FBReader.desktop - это ссылка на программу, ответственную за запуск fb2 формата. Все ссылки расположены в директории /usr/share/applications/
По-быстрому добавить эту строку через консоль можно следующими командами:
sudo echo "application/x-fictionbook+xml=FBReader.desktop;" >> /usr/share/applications/defaults.list
sudo echo "application/x-fictionbook+xml=FBReader.desktop;" >> /usr/share/applications/mimeinfo.cache
В том случае, если не уверен какую строку нужно вписать для ассоциации файлов — я пишу в терминале:
mimetype -aD файл.fb2
и в выводе будет указано что-то вроде:
$ mimetype -aD .fb2
> Checking inode type
> Checking globs for basename '.fb2'
> Checking for extension '.fb2'
.fb2: application/x-fictionbook+xml
Выделенное жирным копируем и вписываем в упомянутые выше файлы конфигурации.
Следующим этапом будет присвоение значка для всех .fb2 файлов. Читайте об этом в следующей статье.
От спонсора:
Устали от бесконечного поиска софта? Посетите наш сайт и найдите для себя необходимые программы для компьютера. К каждой программе имеется детальное описание и прилагается изображение интерфейса. Более того, все программы для компьютера от группированы в зависимости от их целевого назначения. У нас есть всё!
А через иксы никак нельзя? Вряд ли фбридер идет из под командной строки.
Slicks2012-04-04 22:19:51
<b>Олег</b>, ты меня не правильно понял. В консоли производится только настройка. А все файлы, естественно, запускаются через Х-сервер. Просто если графическим способом установить ассоциацию зайдя в контекстное меню файла и выбрав через что открывать – это будет локальный конфиг для текущего пользователя. И если удалить системные папки юзера или войти под новым аккаунтом – ассоциация не сохранится, так что лучше через консольку сделать и потом не париться.
Виталий Климович2013-10-28 09:39:51
А ассоциации обычного пользователя хранятся в /.local/share/aplications/mimeapps.list