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

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.

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

open my.pdf

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

evince my.pdf

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

谢谢!

也许这个问题应该转移到superuser.com?

超级用户似乎不合适 - 是否有"普通用户"的StackOverflow或可能"想要编写其他应用程序脚本的程序员",即自动化?

askubuntu可能适合。

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

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

但是,这与open之间的一个很大区别是,它不会在后台打开文件/应用程序。 Linux应用程序似乎非常繁琐,并且经常会在您的终端中输出多行诊断和警告(即使没有出现任何问题)。我通常不得不做类似xdg-open &> /dev/null &的事情。在这方面有没有比xdg-open更好的东西?

@Suan:它确实打开了"背景"中的应用程序,与终端分离,以便在应用程序启动后您可以继续在终端中工作。因此不需要尾随&。至于"多行诊断",这些来自应用程序本身,而不是来自xdg-open。如果你不想要任何输出,你甚至需要&> /dev/null直接使用evince(OP的例子),所以你的抱怨是无效的。 xdg-open确实是要走的路。

@MestreLion我不认为投诉完全无效,因为Mac打开不会导致应用程序输出回显到终端。

@MaxNanasy:输出来自应用程序,如果它们很健谈则不是xdg-open的错误。抑制此类消息应该是用户的选择,而不是xdg。因此,要求提供比xdg-open"更好"的东西是无效的抱怨。此外,如果Mac的open没有输出这些消息的选项,我会说open比xdg-open差得多,因为当您使用命令行启动文件时,您通常会对该输出感兴趣(否则,为什么不简单地在像Nautilus这样的浏览器中双击文件?)

@MestreLion用例I,可能是大多数Mac用户,最常使用open,如果我已经在使用终端,但想要打开带有GUI应用程序的文件(例如我在一个带有一个文件夹的文件夹中)我要查看的图像,所以我运行open image.png,而不是重新导航到Finder中的文件夹。如果我想查看来自GUI应用程序的调试消息,我打开Console,它有一个Console Log视图,显示来自所有正在运行的应用程序的消息。

@MestreLion PS:我不是说open比xdg-open更好或更差:我只是否认Suan的抱怨是无效的,因为这两个系统有不同的行为,而Suan更喜欢一个系统行为的一个方面。

@MestreLion虽然可以证明投诉是微不足道的,但是alias open='xdg-open &>/dev/null'会产生大致所需的行为(尽管来自xdg-open本身的错误(与启动的程序相反)也会被静音,这是不可取的)。

@MaxNanasy:我们都同意每个工具的唯一区别是它们关于输出的默认行为:默认情况下open静音输出(有没有办法让它"不沉默"?),而xdg-open,就像大多数一样linux终端工具,不会使其应用程序的输出无声。这是一个明智的默认,恕我直言,因为A)如果你愿意,自己禁用它是微不足道的; B)应用程序可能会输出重要消息,而不仅仅是调试诊断和警告

xdg-open不会在OSX上打开多个文件,例如"open":open image*.jpg可能需要一种解决方法:ls *.jpg | while read -r file; do xdg-open"$file"; done

如何"打开-a",我试图解决这个问题,但在Linux上apple.stackexchange.com/questions/75221/

您要查找的等效项是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上保持一致。

这很好,但不是很好,我试图打开一个.url文件并在gedit中打开它。

@sorin你是否试图让它听起来像是我的错?

@sorin:xdg-open打开系统的文件默认应用程序。在您的情况下,.url文件设置为在gedit中打开。如果要更改它,请右键单击Nautilus中的文件,然后转到"属性">"打开方式"以更改默认应用程序,xdg-open将相应地起作用。

这是我做过的一个要点,只是在第一条评论的"Altogether"部分下复制粘贴和执行命令。

我只是把自己整理出来,以为我会写下我是怎么做到的,这与Suan所说的具体相关。

这些步骤允许您只输入"打开"而不是您不需要的消息中包含的终端:

在~/bin中创建一个名为open的脚本,内容只是:

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

保存并关闭脚本,然后键入"source .profile"(如果相关,则键入.bash_profile)。

这就是所以键入"打开音乐"将在nautilus GUI中打开您的音乐文件夹,不应该在您的终端上输入任何内容。

别名和奇怪位置有什么关系?只需调用脚本本身open并将其放入PATH(通常在$HOME/bin/open中)

在我的机器上(ubuntu 11.10),如果你向你的路径添加一个名为'open'的脚本,并尝试这样做,它会被/ bin / open覆盖。所以我无法找到一种在没有别名的情况下开始工作的方法。

诀窍是将您自己的脚本放在PATH中早于/bin的目录中。按照惯例,如果你有$HOME/bin,它将被添加到PATH的开头,在任何系统目录之前。通常,这是由您的.profile或类似的。例如,Ubuntu上的默认.profile就是这样做的。

啊,我明白了,谢谢,我会编辑我的答案

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

我不得不使用"$ 1"而不是$ 1(包括引号)来阻止xdg-open对文件名中的空格感到困惑。

@efdee:正确引用所有变量是一种很好的编程习惯,对于bash脚本至关重要。这与xdg-open无关,这是一个shell问题。

此外,最后不需要&:gnome中的xdg-open使用gvfs-open,它已经在后台打开应用程序。恕我直言,不应使用重定向:在终端中打开文件通常意味着您对调试/错误消息感兴趣。否则,为什么不简单地使用Nautilus呢?

在Mac Finder上记住每个目录的视图设置(侧边栏,工具栏,视图模式等)。我认为它将这些存储在一个隐藏文件中(也可能是.DS_Store?)。它甚至可以记住树视图中打开/关闭项目的状态!因此,当我与Vim合作进行Git回购时,我通常输入"open"。开始。它会打开一个漂亮的树视图,没有所有的东西(侧边栏/工具栏),它总是打开它最后一次。基本上是一个非常好用和方便的浏览我的回购和拖放文件到Vim的方式(我喜欢Vim,但我讨厌愚蠢的文本模式窗口)。

xdg-open并不总是在后台运行,我目前正在使用KDE。 xdg-open也不完全等同于open或Cygwin的cygstart。打开的应用程序应完全独立于终端打开,而不是终端的进程树的一部分,这意味着它应该被分离,并且其错误输出应该流向~/.xsession-errors。

此外xdg-open当前不会打开*.desktop文件。 所以我不能只是打开一个应用程序,而不打开文件关联。

在我的?/ .zshrc中,我添加了:alias open="xdg-open &>/dev/null"。

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

man see

问题是run-mailcap(及其许多别名)使用单独的(并且非常过时)的应用关联数据库。例如,在我的系统中,当.mp3歌曲在VLC中正确打开时,.txt文件打开较少(而不是gedit),.pdf文件无法打开! (错误:找不到类型为"application / pdf"的"查看"mailcap规则)

正如我所说,这取决于每个系统。很少有应用程序以run-mailcap识别它们的方式注册自己。 xdg-open内部使用gvfs-open(在像Ubuntu这样的Gnome系统上),后者又使用xdg的mime-database规范,这是更多应用程序使用的规范。

为我打开了gimp的50页PDF。我会坚持使用xdg-open。

GNOME开

gnome-open现已弃用,除此之外,如果用户在Gnome上(现在使用gvfs-open),它已经由xdg-open内部使用

如果您正确设置了mimes,则可以使用mimeopen。查看其手册页,因为它有一些有用的选项。

如果这个答案得到扩展,那就太好了。 我有兴趣看看它是如何工作的

在Gnome桌面环境下,我使用以下命令:

nautilus `pwd` &

这类似于"开放"。 Mac中的命令

这个答案有几个问题:A)它按用户请求打开当前目录,而不是文件。 B)您可以使用.而不是"pwd"C)如果更改文件的pwd,用户在Nautilus打开后仍需要按Enter键D)首先打开nautilus只是为了打开文件是 非常间接的解决方案。

linux macos 程序员,关于macos:Linux相当于Mac OS X“open”命令相关推荐

  1. [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  2. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  3. [Linux] PHP程序员玩转Linux系列-nginx初学者引导

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  4. [Linux] PHP程序员玩转Linux系列-备份还原MySQL

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...

  5. [Linux] PHP程序员玩转Linux系列-自动备份与SVN

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  6. [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  7. linux与mac os程序员,程序员为什么要使用或推荐Mac OS X?[关闭]

    我从1984年开始就在Mac上进行开发,从1989年以来就一直在* nix上进行开发,从1990年开始就一直在Windows上进行开发.拿另一半. 也许您可以在Mac上做的某些事情在Windows / ...

  8. python ios开发环境_程序员的macOS系列:Mac开发环境配置

    1.前言 最近在写<程序员的macOS系列>文章,之前写的第一篇 程序员的macOS系列:精选Mac App,大家都希望楼主尽快更新,结果拖到了2个月后,所以今天终于更新啦!其实macOS ...

  9. 程序员开发windows linux,好程序员不用windows作开发环境

    好程序员不用windows作为开发环境,今天我想就这个点吐槽一下.最近因为工作关系,需要在windows机器上工作一段时间,作为一个用了多年windows,然后切换到ubuntu作为工作环境两年时间, ...

最新文章

  1. JMeter 阶梯式加压测试插件 Concurrency Thread Group
  2. 如何对自己做好正确的人生规划
  3. ACL 2021 | SimCLS: 概念简单但足够有效的对比学习摘要生成框架
  4. IOS 集成支付宝和邮件发送
  5. 微服务 前台调用后台的慢的原因_20年IT农民工分享SpringCloud微服务架构实战文档...
  6. Python利用turtle绘制五角星
  7. Percona XtraBackup 数据恢复工具安装 ubuntu 16.04
  8. SCUT - 240 - 宝华的文件系统 - 模拟
  9. JSP — 小项目【实现登录界面】
  10. Linux下查看网卡光衰值
  11. centos yum源配置
  12. 30m土地利用数据集获取大全/植被类型分布/NDVI数据/NPP数据/径流量数据/降雨量气温气象数据/蒸散量数据/太阳辐射数据
  13. 板岩 Steven Slate Audio :FG-2A 压缩评测
  14. python学习之面对对象程序设计作业
  15. 使用ivx滑动时间轴制作动画效果的经验总结
  16. 三星会议组织:八个必须,三个公式
  17. 百度优化客服电话搜索
  18. 带你全方位了解考研初试!
  19. 赤峰中考计算机考试软件,2018赤峰中考信息技术与实验操作实施细则公布
  20. 汽车导航linux系统设计,基于ARM-Linux平台车载导航系统设计与实现

热门文章

  1. 从零开始开发JVM语言(七)语义分析的起步
  2. CentOS下桥接模式连不上网
  3. 如何在博客园中自定义导航菜单
  4. 锦江公司 nginx 转发
  5. 关于 LDTP 操纵 windows 控件。
  6. Android系列---JSON数据解析
  7. 排序规则在拼音处理中的应用.sql
  8. CSS挂马及相应防范方法
  9. ASP.NET 2.0中的跨页面提交
  10. selenium windows 下面环境搭建(安装JDK)