天天看點

Linux下的通用打開指令

轉載自: http://blog.ossxp.com/2011/04/2437/

2011-05-21

在Mac下的終端裡可以輸入open來打開任意類型的檔案,linux下是否也有類似的指令呢?

經查,發現有三個指令可以實作類似效果:

  • see

see通過查找在mailcap檔案中設定的檔案類型和應用程式映射來打開檔案。系統配置檔案在/etc/mailcap,使用者可以自定義配置檔案到~/.mailcap。

通過see調用GUI程式以後要等待程式結束才可以繼續輸入指令。

  • xdg-open

xdg-open使用的配置檔案不詳。調用程式後終端仍可繼續輸入指令而不必等待程式結束。

  • gnome-open

gnome-open使用GNOME檔案管理來打開檔案。一般和Nautilus中設定的檔案關聯一緻。

測試

我的系統為Ubuntu 11.04。

打開pdf檔案,see調用了Okular打開,而xdg-open和gnome-open調用了evince。

打開jpeg檔案,see調用了feh,而xdg-open和gnome-open調用了eye of gnome。

打開html檔案,三者都調用了x-www-browser,這裡是google-chrome。

打開utf-8編碼的txt(字尾為txt),see調用了less,xdg-open和gnome-open調用了gedit。

打開utf-8編碼的txt(無字尾),see不識别:

Warning: unknown mime-type for "test_utf-8" -- using "application/octet-stream"
Error: no "view" mailcap rules found for type "application/octet-stream"       

而xdg-open和gnome-open處亂不驚,gedit依舊。

打開cp936編碼的txt,see誤以為二進制檔案,強制打開後失敗,退出碼1:

$ see test_gbk.txt
"/tmp/file1tdJGh" may be a binary file.  See it anyway?
Warning: program returned non-zero exit code #1       

xdg-open和gnome-open表現的很淡定,繼續gedit之。

總結

see的配置檔案mailcap超級複雜,要自定義恐怕要費不少時間,而xdg-open/gnome-open由于和Nautilus保持一緻,這樣就很和諧,很友善。并且xdg-open/gnome-open在輸入指令後不必等待程式結束就可以繼續輸入,比see要實用。

參考自:http://zh-cn.w3support.net/index.php?db=so&id=264395

繼續閱讀