¿Hay un comando "abrir con" para la línea de comando?

24

¿La línea de comando tiene una manera de obtener una lista recomendada de programas utilizados para abrir un archivo en particular, según el tipo de archivo? Por ejemplo, un .pdfarchivo tendría una open with...recomendación usando los programas Evincey Document Viewer.

Utilizo la línea de comandos para la mayoría de las cosas, pero a veces olvido el nombre de un programa que quiero usar para abrir un tipo particular de archivo.

Por cierto, estoy usando Ubuntu 13.10.

propina

Gracias a la respuesta seleccionada de @slm a continuación, hice el siguiente script bash en un archivo llamado openwith.sh:

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

Agregar como un alias o ejecutar directamente como un openwithcomando.

modulitos
fuente
1
Puedes probar con gnome-open file. He agregado alias o='gnome-open'a mi .bashrcpor simplicidad.
Pål GD
gnome-openfunciona de manera similar a xdg-open.
slm
Aparentemente, también lo hace gvfs-open. Pregunta ¿Qué puedo usar en lugar de gnome-open? de preguntar ubuntu .
Pål GD

Respuestas:

33

No hay un comando que haya visto que actúe como "abrir con ...", pero puede usar el comando xdg-open <file>para abrir un <file>archivo dado en la aplicación que está asociada con ese tipo particular de archivo.

Ejemplos

Abrir un archivo de texto:

$ xdg-open tstfile.txt
$

Como resultado, el archivo tstfile.txtse abre en gedit:

                         ss de gedit

Abrir un documento de LibreOffice Writer:

$ xdg-open tstfile.odt 
$

Como resultado, el archivo tstfile.odtse abrió en Writer:

                         ss de escritor

¿Qué aplicaciones se usan?

Puede utilizar xdg-mimepara consultar el sistema para averiguar qué aplicaciones están asociadas a un tipo de archivo determinado.

$ 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 es una operación de 2 pasos. Primero, estoy buscando el tipo mime de un archivo determinado xdg-mime query filetype tstfile.txt, que volverá text/plain. Esto se usa para realizar otra búsqueda para encontrar la lista de aplicaciones asociadas con este tipo mime. Como puede ver arriba, tengo 2 aplicaciones asociadas gedity calibre, para .txtarchivos.

También puede usar xdg-mimepara cambiar las asociaciones. Ver man xdg-mimepara más detalles.

slm
fuente
¿Hay alguna forma de mostrar otros tipos de programas además de los predeterminados? Por ejemplo, acabo de instalar okularpara ver archivos PDF, pero su ejemplo anterior solo se muestra evincecuando lo ejecuto en un archivo .pdf.
modulitos
1
@Lucas: sí, los ejemplos que he mostrado muestran las aplicaciones que están asociadas con un tipo de archivo dado arriba. Por ej. los archivos de tipo .txtestán asociados con gedit y calibre, por ejemplo.
slm
¿Necesito tener .desktoparchivos para los programas que quiero enumerar? Por ejemplo, cuando ejecuto el script en un .pdfarchivo, regresa evince.desktop, aunque también puedo ejecutarlo okular.
Modulitos
@Lucas: probablemente sea mejor preguntarlo como una nueva Q, ya que ahora nos estamos alejando de la Q original.
slm
5

Si trabajas principalmente en la línea de comandos, puedes mirar un administrador de archivos basado en maldiciones, como ranger o vifm . Ambos le permiten definir acciones predeterminadas para los tipos de archivo.

En vifm, por ejemplo, en ~/.vifm/vifmrcusted puede definir asociaciones de esta manera:

" 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

Al presionar Enterel cursor sobre cualquier archivo con una de las acciones definidas, la aplicación correspondiente lo abrirá. Como puede ver en el caso de los .htmlarchivos, puede activar un script y una aplicación.

jasonwryan
fuente
5

Más o menos, pero como resultado cambiará su aplicación predeterminada. No estoy seguro de en qué otros sistemas operativos funciona, pero las instrucciones a continuación funcionan para Ubuntu 12.04 - Desktop X86-64. No tenía ningún archivo PDF a mano, así que probé con un archivo .zip.

Pasos generales

Paso 1

En un tipo de terminal:

$ mimeopen -d /home/username/example.zip
captura de pantalla # 1 = https://copy.com/qfWSZaZ4FzlA

    ss # 1

Paso 2

Elija de la lista ingresando #la aplicación que desea y presionando enter. El archivo se abrirá inmediatamente en la aplicación que elija.

captura de pantalla # 2 = https://copy.com/um6Rf7zRdceT

    ss # 2

captura de pantalla # 3 = https://copy.com/ytwKCqR6nv8i

    ss # 3

Notas

Nota 1

Esto cambia la aplicación predeterminada a la que elija, por lo que cada vez que abra ese tipo de archivo, ahora se abrirá en la aplicación que eligió por última vez de la lista.

por favor borrame
fuente
¿Querías poner un signo hash (#) en la URL para la captura de pantalla 3?
trysis
@trysis Lo acabo de usar para evitar el límite máximo de 2 URL.
por favor
Oh, tiene sentido. Sin embargo, todavía se ve raro.
trysis
Te limpié A y agregué la tercera URL para ti.
slm
2

Depende del sabor de Unix que estés usando, supongo. En OS X, puede usar el opencomando:

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.

...
Ionoclast Brigham
fuente
Además, el opencomando apareció por primera vez en NextStep y fue heredado por OS X, por lo que puede estar disponible de alguna forma en otras plataformas más o menos basadas en OpenStep (por ejemplo, AfterStep, LiteStep).
Ionoclast Brigham