轉載自: 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