命令行有“打开方式”命令吗?

命令行有“打开方式”命令吗?

命令行是否有办法根据文件类型获取用于打开特定文件的推荐程序列表?例如,.pdf文件将包含open with...使用程序Evince和 的建议Document Viewer

我在大多数情况下都使用命令行,但有时我会忘记要用来打开特定类型文件的程序的名称。

顺便说一句,我使用的是 Ubuntu 13.10。

专家提示

感谢@slm 在下面选择的答案,我在一个名为 的文件中制作了以下 bash 脚本openwith.sh

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

添加为别名或直接作为openwith命令执行。

答案1

我见过没有一个命令可以充当“打开方式...”,但您可以使用该命令xdg-open <file>打开<file>应用程序中与该特定类型的文件关联的给定命令。

例子

打开文本文件:

$ xdg-open tstfile.txt
$

导致文件tstfile.txt被打开gedit

                         gedit 的 ss

打开 LibreOffice Writer 文档:

$ xdg-open tstfile.odt 
$

tstfile.odt结果是在 Writer 中打开文件:

                         作家的党卫军

使用哪些应用程序?

您可以使用xdg-mime查询系统来找出与给定文件类型关联的应用程序。

$ 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

这是一个两步操作。首先,我查询给定文件的 mime 类型,xdg-mime query filetype tstfile.txt它将返回text/plain。然后,它用于执行另一次查找,以找出与此 mime 类型关联的应用程序列表。正如您在上面看到的,我有 2 个关联的应用程序,gedit并且calibre,用于.txt文件。

xdg-mime也可以用来更改关联。请参阅man xdg-mime了解更多详情。

答案2

如果您主要在命令行上工作,您可以查看基于curses的文件管理器,例如护林员或者维夫姆。两者都允许您定义文件类型的默认操作。

例如,在 vifm 中,~/.vifm/vifmrc您可以像这样定义关联:

" 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

使用定义的操作之一将Enter光标放在任何文件上将看到该文件被相关应用程序打开。正如您在文件中看到的那样.html,您可以触发脚本以及应用程序。

答案3

有点像,但它会因此改变你的默认应用程序。我不确定这适用于哪些其他操作系统,但以下说明适用于 Ubuntu 12.04 - Desktop X86-64。我手头没有任何 pdf 文件,因此我使用 .zip 存档进行了测试。

一般步骤

步骤1

在终端类型中:

$ mimeopen -d /home/username/example.zip
屏幕截图#1 =https://copy.com/qfWSZaZ4FzlA

    SS #1

第2步

#输入所需应用程序的 并按 ,从列表中进行选择enter。该文件将立即在您选择的应用程序中打开。

截图 #2 =https://copy.com/um6Rf7zRdceT

    SS #2

截图 #3 =https://copy.com/ytwKCqR6nv8i

    SS#3

笔记

注意#1

这会将默认应用程序更改为您选择的应用程序,因此每当您打开该文件类型时,它现在都会在您最后从列表中选择的任何应用程序中打开。

答案4

我猜这取决于你使用的 Unix 风格。在 OS X 中,您可以使用以下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.

...

相关内容