Я спрашиваю это из любопытства, чтобы узнать, что происходит «за кулисами», когда я дважды щелкаю файл в файловом браузере, скажем, Наутилус. В частности, с какими параметрами исполняемый файл выполняется? Где файл .desktop вступает в игру и как Nautilus отправляет имя файла?
Это было актуально для меня, когда Okular открывал несколько экземпляров одного и того же файла, и мне приходилось писать сценарий оболочки, который имел обыкновение терпеть неудачу, потому что имя файла не было передано должным образом. (Пробелы в именах файлов будут преобразованы в HTML% 20 символов, и мне пришлось много выяснить, как именно передаются имена файлов.)
Существуют две директории, которые содержат .desctop
файлов: /usr/share/applications/
(глобальный список для всех пользователей) и ~/.local/share/applications/
(для конкретного пользователя). Оба каталога содержат список ассоциаций типов файлов (defaults.list
и mimeapps.list
соответственно).
Когда вы щелкаете файл, Nautilus находит соответствующий файл .desctop
и запускает вашу программу. Каждый файл .desctop
содержит клавишу Exec
, которая задает командную строку (программу и ее параметры). См. этот документ для подробностей о клавише Exec
.
Если в файле .desctop
указана программа без полного пути, она будет найдена на вашем $PATH
. При установке по умолчанию $PATH
обычно включает в себя следующие каталоги: /usr/local/sbin
, /usr/local/bin
, /usr/sbin
, /usr/bin
, /sbin
, /bin
.