Вопрос Сценарий для поиска исполняемого файла на основе расширения файла?


Мне нужно создать сценарий, который возвращает приложение по умолчанию, которое будет использоваться для данного расширения файла (включая путь). Я взглянул на file команда, которая может возвращать тип mime и xdg-open который откроет файл. Но я бы хотел получить

myscript doc

/ USR / бен / LibreOffice

.или.

myscript fun

/ Опт / Acme / Roadrunner / meepmeep

Как мне это сделать?


4
2017-07-04 04:41


происхождения




ответы:


Я схватил эксперта Linux в офисе, и мы нашли разумное решение:

#!/bin/bash
EXTENSION=$1
SAMPLENAME=$HOME/~webdavhelpersample.$EXTENSION
touch $SAMPLENAME
CURMINE=$(xdg-mime query filetype $SAMPLENAME)
rm $SAMPLENAME
CURDSK=$(xdg-mime query default $CURMINE)

if [ -f /.local/share/applications/$CURDSK ]; then
    TRUEDSK=/.local/share/applications/$CURDSK
elif [ -f /usr/local/share/applications/$CURDSK ]; then
    TRUEDSK=/usr/local/share/applications/$CURDSK
elif [ -f  /usr/share/applications/$CURDSK ]; then
    TRUEDSK=/usr/share/applications/$CURDSK
else 
    echo "Sorry no executable found for $1"
    exit 1
fi

WHATTODO=$(grep "^Exec" $TRUEDSK | head -1)
echo $WHATTODO

Как только мы поняли, что есть только 3 места для файлов рабочего стола это было не сложно.


1
2017-07-05 09:49





Команда может быть примерно такой:

xdg-mime query default `xdg-mime query filetype example.odp` 

Результат:

libreoffice-impress.desktop

0
2017-07-04 08:45



Привет, Самик, спасибо за ответ. Я попробовал команду на Ubuntu 12.04 и столкнулся с двумя проблемами: а) если example.odp не существует, он просто выдает ошибку, а во-вторых (большая проблема), которую я только что получил Приложение / vnd.oasis.opendocument.presentation взамен. Кроме того, рабочий стол не выполняется, мне нужно что-то, что я могу вызвать с набором параметров после этого - stwissel
Быстрое обновление: я могу получить доступ к файлу рабочего стола, используя Файл типа xdg-mime example.odp || xdg-mime запрос по умолчанию но тогда все же проблема заключается в том, как добраться до исполняемого файла, включая путь - stwissel