Script para encontrar executável com base na extensão de um arquivo?

4

Eu preciso criar um script que retorne o aplicativo padrão a ser usado para uma determinada extensão de arquivo (incluindo o caminho). Eu dei uma olhada no comando file , que pode retornar o tipo mime e xdg-open , o que abriria um arquivo. Mas o que eu gostaria de conseguir é

myscript doc
  
    

/ usr / bin / libreoffice

  

.ou.

myscript fun
  
    

/ opt / acme / roadrunner / meepmeep

  

Como faço isso?

    
por stwissel 04.07.2012 / 06:41

2 respostas

1

Eu peguei um especialista em Linux no escritório e encontramos uma solução razoável:

#!/bin/bash
EXTENSION=
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 "
    exit 1
fi

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

Uma vez percebemos que existem apenas 3 locais para os arquivos da área de trabalho não foi mais difícil.

    
por stwissel 05.07.2012 / 11:49
0

O comando pode ser algo como:

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

Resultado:

libreoffice-impress.desktop
    
por Samik 04.07.2012 / 10:45