Existe um comando “open with” para a linha de comando?

21

A linha de comando tem uma maneira de obter uma lista recomendada de programas usados para abrir um determinado arquivo, com base no tipo de arquivo? Por exemplo, um arquivo .pdf teria uma recomendação open with... usando os programas Evince e Document Viewer .

Eu uso a linha de comando para a maioria das coisas, mas às vezes eu esqueço o nome de um programa que eu quero usar para abrir um tipo particular de arquivo.

BTW Estou usando o Ubuntu 13.10 se isso ajudar.

pró-dica

Graças à resposta selecionada do @slm abaixo, eu fiz o seguinte script em um arquivo chamado openwith.sh :

xdg-mime query default $(xdg-mime query filetype $1)

Adicione como um alias ou execute diretamente como um comando openwith . Espero que isso ajude!

    
por modulitos 15.04.2014 / 03:16

4 respostas

30

Não há um comando que eu tenha visto que funcionará como "aberto com ...", mas você pode usar o comando xdg-open <file> para abrir um determinado <file> no aplicativo que está associado a esse particular tipo de arquivo.

Exemplos

Abrindo um arquivo de texto:

$ xdg-open tstfile.txt
$

Resultando no arquivo tstfile.txt sendo aberto em gedit :

AbrindoumdocumentodoLibreOfficeWriter:

$xdg-opentstfile.odt$

Resultandonoarquivotstfile.odtsendoabertonoWriter:

Quais aplicativos são usados?

Você pode usar xdg-mime para consultar o sistema para descobrir quais aplicativos estão associados a um determinado tipo de arquivo.

$ xdg-mime query default $(xdg-mime query filetype tstfile.txt)
gedit.desktop calibre-ebook-viewer.desktop

$ xdg-mime query default $(xdg-mime query filetype tstfile.odt)
libreoffice-writer.desktop calibre-ebook-viewer.desktop

Esta é uma operação de 2 etapas. Primeiro, estou consultando o tipo MIME de um determinado arquivo, xdg-mime query filetype tstfile.txt , que retornará text/plain . Isso é então usado para executar outra pesquisa para descobrir a lista de aplicativos associados a esse tipo MIME. Como você pode ver acima, eu tenho 2 aplicativos associados, gedit e calibre , para .txt files.

Você pode usar xdg-mime para alterar as associações também. Veja man xdg-mime para mais detalhes.

    
por 15.04.2014 / 03:28
5

Se você trabalha principalmente na linha de comando, pode ver um gerenciador de arquivos baseado em xingamentos, como o ranger ou vifm . Ambos permitem que você defina ações padrão para tipos de arquivos.

Em vifm, por exemplo, em ~/.vifm/vifmrc você pode definir associações da seguinte forma:

" Images
filetype *.jpg,*.jpeg,*.gif,*.tif,*.png,*.bmp sxiv 

" Media
filetype *.flv,*.avi,*.mp4,*.mpeg,*.mpg,*.mov,*.ogg,*.ogv,*.mkv mpv 

" Web
filetype *.html,*.htm,*.shtml /home/jason/Scripts/vimprobtab.sh 

" PDF
filetype *.pdf apvlv

Acertando Enter com o cursor em qualquer arquivo com uma das ações definidas, ele será aberto pelo aplicativo relevante. Como você pode ver no caso dos arquivos .html , você pode acionar um script e um aplicativo.

    
por 15.04.2014 / 09:39
5

Classifique, mas isso irá alterar seu aplicativo padrão como resultado. Não tenho certeza em que outros sistemas operacionais isso funciona, mas as instruções abaixo funcionam para o Ubuntu 12.04 - Desktop X86-64. Eu não tinha nenhum arquivo pdf à mão, então testei com um arquivo .zip.

Etapas gerais

Etapa # 1

Em um tipo de terminal:

$ mimeopen -d /home/username/example.zip
Captura de tela 1 = link

Etapa#2

Escolhanalistainserindoo#doaplicativodesejadoepressionandodigite.Oarquivoseráabertoimediatamentenoaplicativoquevocêescolheu.

Capturadetela#2= link

screenshot#3= link

Notas

nota # 1

Isso altera o aplicativo padrão para o que você escolher, e assim, sempre que você abrir esse tipo de arquivo, ele será aberto em qualquer aplicativo que você tenha escolhido da lista.

    
por 15.04.2014 / 07:47
2

Depende do sabor do Unix que você está usando, eu acho. No OS X, você pode usar o comando open :

OPEN(1)                   BSD General Commands Manual                  OPEN(1)

NAME
     open -- open files and directories

SYNOPSIS
     open [-e] [-t] [-f] [-F] [-W] [-R] [-n] [-g] [-h] [-b bundle_identifier]
          [-a application] file ... [--args arg1 ...]

DESCRIPTION
     The open command opens a file (or a directory or URL), just as if you had
     double-clicked the file's icon. If no application name is specified, the
     default application as determined via LaunchServices is used to open the
     specified files.

     If the file is in the form of a URL, the file will be opened as a URL.

...
    
por 15.04.2014 / 09:52