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? .