补充说明
Linux 并没有统一的 open 命令,同名程序在不同环境下含义完全不同。Debian 等系统里的 open 通常是 openvt 的别名或包装,作用是在新的虚拟终端(VT)上启动一个程序;macOS 的 open 则是“用默认应用程序打开文件或目录”,桌面上对应的 Linux 命令是 xdg-open。
使用前先确认它到底是什么:readlink -f "$(command -v open)" 和 open --help 能看出实现。如果系统没有该命令,桌面环境请直接用 xdg-open,终端切换请直接用 openvt。
macOS 的常见用法包括:open . 在访达中打开当前目录,open -a 应用 指定程序,open -R 文件 在访达中定位文件,open -n -a App --args ... 启动新实例并传参。Linux 的 openvt 选项则围绕 VT 编号、切换和等待进程结束。
注意:open 不会等待图形程序退出(除非加 -W),脚本中若需同步执行应显式等待。远程 SSH 会话没有图形环境时,xdg-open 通常会失败。
语法
open [选项] 文件... # macOS
open [-c 终端号] [-sw] 命令 [参数...] # Linux,openvt 别名
选项
macOS 常用选项:
-a <应用>:用指定应用打开-e:用文本编辑器打开-t:用默认文本编辑器打开-R:在访达中显示文件-n:新开一个应用实例-W:等待应用退出--args:把后续参数传给应用
实例
# macOS:在访达中打开当前目录
open .
# macOS:用指定应用打开文档,并等待其退出
open -W -a "Preview" report.pdf
# macOS:在访达中定位文件
open -R ~/Downloads/archive.zip
# Linux 桌面:用默认程序打开文件(通用替代)
xdg-open report.pdf
# Linux 控制台:在 3 号虚拟终端启动 top
sudo openvt -c 3 top