Command-Line

open 命令在應用程序中打開文件

  • March 25, 2020

為什麼我不能在終端中執行此命令:

open index.html

不是應該在我的瀏覽器上打開這個文件嗎?我也不能執行這個命令:open index.html -a "Sublime Text". 這些命令的結果是:

$ open index.html
Couldn't get a file descriptor referring to the console

$ open index.html -a "Sublime Text" - 
open: invalid option -- 'a' 
Usage: open [OPTIONS] -- command

OS X 命令的主要目的open是在相關應用程序中打開文件。在現代非 OSX unice 上相當於xdg-open.

xdg-open index.html

xdg-open沒有與 OSX 等效的open -a在特定應用程序中打開文件的功能。這是因為在應用程序中打開文件的正常方法是簡單地鍵入應用程序的名稱,然後輸入文件的名稱。更準確地說,您需要鍵入實現應用程序的可執行程序的名稱。

sublime_text index.html

Linux 和其他 Unix 系統一樣(但據我所知,不是 OS X 的非 Unixy 部分)通過使用包管理器跟踪軟體來管理軟體,並將單個文件放在使用它們的地方。例如,所有可執行程序都位於一小組目錄中,並且所有這些目錄都列在PATH變數中;runningsublime_text查找sublime_text在列出的目錄中呼叫的文件PATH。OS X 需要額外的間接層級,通過open -a,來處理解壓在單個目錄樹中並在應用程序數據庫中註冊的應用程序。Linux 沒有任何應用程序數據庫,但它的組織方式使其不需要數據庫。

如果執行命令sublime_textshell 對你不起作用,那麼 Sublime Text 沒有正確安裝。我從未使用過它,而且顯然它是作為 tar 存檔而不是作為分發包(例如 deb 或 rpm)提供的,因此您可能需要執行額外的安裝步驟。Sublime Text 的製作者的工作確實是讓這個自動化,但是如果他們還沒有這樣做,你可能可以通過執行命令自己來完成

sudo -s …/sublime_text /usr/local/bin

當然,替換為執行檔所在的路徑。sublime_text

open您遇到的命令是該命令的舊名稱openvt(某些 Linux 發行版僅在 name 下包含它openvt)。該openvt命令創建了一個新的虛擬控制台,它只能由 root 完成,並且在本世紀不經常使用,因為大多數人只在圖形視窗環境中工作。

引用自:https://unix.stackexchange.com/questions/253376