Lista de tipos de arquivos e aplicativos padrão do Ubuntu para abrir com

1

Estou escrevendo um humilde gerenciador de arquivos e estou procurando uma lista de diferentes tipos de arquivos e quais aplicativos padrão o Ubuntu usa para abri-los.

Até agora eu só descobri "texto" aberto com gedit , "imagem" aberta com eog (olho-de-gnome) e "áudio" aberto com ogg123 . Não tenho certeza se o ogg123 é um aplicativo padrão.

Gostaria de receber uma pequena ajuda para expandir a lista no código abaixo:

function OpenFileWithMagic () {

local FileType
FileType=$(file -i "$DfName/" | grep -oP '(?<=: ).*?(?=/)')
logger "bafman - OpenFileWithMagic - FileType: $FileType DfName: - $DfName parm 1:  2:  3:  4: "

case $FileType in

text)
    # TODO: expand list of file types and associated applications to open them with
    if [[  == root ]]; then
        gsu gedit $DfName/
    else
        gedit $DfName/
    fi ;;
image)
    eog $DfName/ ;;
audio)
    ogg123 $DfName/ ;;
esac

} ### OpenFileWithMagic ()
export -f OpenFileWithMagic

Notas: export é necessário apenas porque o arquivo é aberto ao clicar duas vezes na caixa de diálogo yad . Eu também preciso de ajuda para descobrir números "mágicos" e como alguém pode interpretá-los. Talvez um elo educativo?

Editar Esta não é uma duplicata de Como abrir o arquivo com o aplicativo padrão a partir da linha de comando? porque:

  • Essa pergunta é como abrir um arquivo da linha de comando . Esta questão é como fazer a partir de um script bash dentro de uma estrutura case .
  • A resposta resultaria em rhythembox sendo usado para arquivos de som que não são desejados. ogg123 é mais adequado para reproduzir sons sem abrir e fechar uma nova janela com mensagens de erro do Python.
  • A resposta lá usaria xdg-open /bin/mv resultando em:

    gvfs-open: /bin/mv: error opening location: No application is registered as handling this file
    
  • Com o script bash acima, o comando file -i /bin/mv resulta em:

    /bin/mv: application/x-executable; charset=binary
    

Depois de filtrar o processamento de todos os tipos de arquivo desejados no script bash, as sobras podem ser passadas para xdg-open , que é usado no candidato duplicado.

Responder a comentários Como apontado pelos DK Bose principais tipos de arquivos podem ser encontrado em /usr/share/mime/types . Aqui há tipos adicionais a serem considerados, como Video (um player de vídeo padrão adequado do Ubuntu precisa ser originado), Application (em vez de executá-lo, informações sobre o aplicativo precisam ser exibidas) e Message (I não tenho idéia de como exibir isso). Tipos adicionais de mime que precisam de mais pesquisas são inode , model , multipart e x-content .

rinzwind apontou ogg123 não é um reprodutor de arquivos de som padrão no Ubuntu. Um aplicativo Ubuntu instalado-por-padrão adequado para reproduzir arquivos de som é canberra-gtk-play como respondido em 5 de outubro de 2016 por wjzndrea em este Q & A: Os caracteres de desenho de linha (ou cores) podem ser adicionados a um menu da lista de arquivos Bash? .

    
por WinEunuuchs2Unix 06.05.2017 / 03:28

1 resposta

10

A maioria dos programas de desktop modernos não usa file , mas o banco de dados MIME-info compartilhado para tipos de arquivos e a especificação de associações de aplicativos MIME para os aplicativos padrão.

No Bash você pode usar xdg-mime para adivinhar Tipo MIME de um arquivo e para obter o aplicativo padrão para um determinado tipo MIME:

$ xdg-mime query filetype bla.sh
application/x-shellscript
$ xdg-mime query default application/x-shellscript
emacs.desktop

Com o xdg-open você pode simplesmente abrir um arquivo com o aplicativo padrão para que você não precise realmente se preocupar com os tipos MIME:

$ xdg-open bla.sh
    
por Florian Diesch 06.05.2017 / 04:08