Мне нужно создать скрипт, который возвращает приложение по умолчанию, которое будет использоваться для данного расширения файла (включая путь). Я взглянул на команду file
, которая может возвращать тип mime, и xdg-open
, которая открывала файл. Но я бы хотел получить
myscript doc
/ usr / bin / libreoffice
blockquote> blockquote>.or.
myscript fun
/ opt / acme / roadrunner / meepmeep
blockquote> blockquote>Как мне это сделать?
Я схватил эксперта по 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 места для файлов рабочего стола, это было не сложно больше.
Команда может быть что-то вроде:
xdg-mime query default `xdg-mime query filetype example.odp`
Результат:
libreoffice-impress.desktop