当前位置:  开发笔记 > 编程语言 > 正文

Linux相当于Mac OS X"open"命令

如何解决《Linux相当于MacOSX"open"命令》经验,为你挑选了4个好方法。

我在命令行中发现Mac OS X中的"open"命令非常方便.从"男人开放":

open命令打开一个文件(或目录或URL),就像双击文件的图标一样.如果未指定应用程序名称,则使用LaunchServices确定的默认应用程序打开指定的文件.

也就是说,如果我想用默认的PDF查看器(恰好是预览版)打开PDF文件,我只需要这样做:

open my.pdf

但是,在Linux中,要从命令行打开PDF文件,我不得不四处寻找默认的PDF查看器,例如"evince"(谁已经猜到了?),然后

evince my.pdf

那么,在Linux命令行中是否有一个简单的"open"命令呢?

谢谢!



1> number5..:

你可以尝试xdg-open,大多数Linux发行版都有它.它将为您的文件打开默认关联应用程序.

仅供参考https://portland.freedesktop.org/doc/xdg-open.html


@MestreLion我不认为投诉完全无效,因为Mac打开不会导致应用程序输出回显到终端.
然而,这与`open`之间的一个很大区别是,它不会在后台打开文件/应用程序.Linux应用程序看起来非常繁琐,并且经常会在终端中输出多行诊断和警告(即使没有出现任何问题).我通常需要做一些像`xdg-open &>/dev/null&`的事情.在这方面有没有比xdg-open更好的东西?
@Suan:它确实打开了"背景"中的应用程序,与终端分离,以便在应用程序启动后您可以继续在终端中工作.因此不需要尾随"&".至于"多行诊断",这些来自app本身,而不是来自`xdg-open`.如果你不想要任何输出,你甚至需要`&>/dev/null`甚至直接使用`evince`(OP的例子),所以你的抱怨是无效的.`xdg-open`确实是要走的路.
@MestreLion虽然可以证明投诉是微不足道的,但是'alias open ='xdg-open&>/dev/null'`会产生大致所需的行为(尽管来自xdg-open本身的错误(而不仅仅是推出的程序)也会被沉默,这是不可取的).
@MaxNanasy:输出来自应用程序,如果*他们*很健谈,那不是`xdg-open`的错.抑制此类消息应该是*user*的*选择,而不是xdg.因此,要求提供比"xdg-open"更好的东西是一种无效的抱怨.另外,如果Mac的`open`没有输出这些消息的选项,我会说'open`比*xdg-open更差*,因为当你使用命令行启动文件时,你通常会感兴趣输出(否则,为什么不简单地在浏览器中双击文件,如Nautilus?)
@MestreLion用例I,可能是大多数Mac用户,最常使用`open`,如果我已经在使用终端,但想要打开带有GUI应用程序的文件(例如我在一个带有一个文件夹的文件夹中)我想查看图像,所以我运行`open image.png`,而不是重新导航到Finder中的文件夹.如果我想查看来自GUI应用程序的调试消息,我打开Console,它有一个Console Log视图,显示来自所有正在运行的应用程序的消息.
如何"打开-a",我试图解决这个问题,但在Linux上http://apple.stackexchange.com/questions/75221/how-to-drop-a-file-onto-a-gui-app-from -命令行
@MestreLion PS:我不是说'open`比'xdg-open`更好或更差:我只是否认Suan的抱怨是无效的,因为这两个系统有不同的行为,而Suan更喜欢一个方面系统的行为.

2> Jeremy Visse..:

您正在寻找的等价物xdg-open,可以与OS X open命令相同的方式使用.例如:

xdg-open ~/Documents/Chubby_Bubbies.odt

但是,这很难快速准确地输入.相反,您应该为xdg-open创建一个别名,这会使该过程更快.

当然,您可以将open其命名为与OS X匹配(您可以选择任何您想要的东西),但就个人而言,]出于速度原因,我使用右方括号()作为我的快捷方式.要使用此功能,请将以下内容添加到您的.bashrc文件中:

alias ']'='xdg-open'

然后,要打开任何资源,请像使用以下任何示例一样使用它:

] www.google.com
] file.txt
] ~/Pictures
] ssh://myserver.local/home/jeremy

这也允许您在当前目录中打开文件浏览器(例如Nautilus):

] .

根据经验,我发现单字母别名最适合上述快捷方式.毕竟,目标是效率.你可以回去在OS X上制作相同的别名 - 我把它作为练习留给读者.:-)


我在'open'到'xdg-open'中创建了一个别名,以便在Linux和Mac上保持一致.
@sorin你是否试图让它听起来像是我的错?
@sorin:`xdg-open`打开系统的文件默认应用程序.在您的情况下,`.url`文件设置为在gedit中打开.如果要更改它,请右键单击Nautilus中的文件,然后转到"属性">"打开方式"以更改默认应用程序,并且"xdg-open"将相应地起作用.

3> Anake..:

我只是把自己整理出来,以为我会写下我是怎么做到的,这与Suan所说的具体相关.这些步骤允许您只输入"打开"而不是您不需要的消息中包含的终端:

创建一个名为脚本open~/bin,内容就是:

xdg-open "$1" &> /dev/null &

保存并关闭脚本,然后键入"source .profile"(如果相关,则键入.bash_profile).这就是所以键入"打开音乐"将在nautilus GUI中打开您的音乐文件夹,不应该在您的终端上输入任何内容.


将输出重定向到`/ dev/null`有点反复无常; 也许你可以将输出重定向到`$ HOME/.xsession-errors`或其他类似的东西,以便在你需要排除故障时不会完全丢失诊断信息.

4> Ali Afshar..:

传统上,您可以使用"see"命令.这只是使用run-mailcap.这将在没有Gnome和X等的情况下工作.

man see


问题是`run-mailcap`(和它的许多别名)使用一个单独的(并且非常过时)的应用程序关联数据库.例如在我的系统中,当`.mp3`歌曲在VLC中正确打开时,`.txt`文件打开较少(而不是gedit)和`.pdf`文件根本无法打开!(错误:找不到类型为"application/pdf"的"查看"mailcap规则)
推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有