ubuntu下的快捷方式

ubuntu下快捷方式

在Ubuntu Kylin下,軟件快捷方式在/usr/share/applications
,軟件通過*.desktop的形式(類freedesktop.org-compliant的桌面中亦然這形式)註冊,用於保存程序的元數據,以TeamVIewe10爲例

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=TeamViewer 10
Comment=TeamViewer Remote Control Application
Exec=/opt/teamviewer/tv_bin/script/teamviewer
Icon=/opt/teamviewer/tv_bin/desktop/teamviewer.png
Type=Application
Categories=Network;
#Categories=Network;RemoteAccess;

文件名爲teamviewer-teamviewer10.desktop,其中NameType是必選的,而Categoies是Dash搜索時的分類。

根據軟件的安裝位置,選擇保存在/usr/share/applications或者是~/.local/share/applications

現在創建一個網頁鏈接的快捷方式

[Desktop Entry]
Name=baidu
Type=Link
URL=http://www.baidu.com

在桌面上會以baidu,即Name屬性值顯示,但實際上這個文件還是以*.desktop爲文件名的,所以編輯時需要注意。
雙擊,會自行調用瀏覽器打開網頁。

創建軟件的快捷方式

[Desktop Entry]
Name=teamview
Type=Application
Exec=/opt/teamviewer/tv_bin/script/teamviewer

Exec用於啓動應用程序,接受sh.
接着賦予權限使其可執行,不然只會當成一般的文件。
chmod u+x TeamVIewe10.desktop

不過一般都是加上IconCategories纔是最基本的。
比較好的像是這樣

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Sample Application Name
Comment=A sample application
Exec=application
Icon=application.png
Terminal=false

更詳細的可看Linux Desktop Entry 文件深入解析


和鏈接作比較

linux下還有軟鏈接硬鏈接,感覺它們更像快捷方式。兩者都是直接指向文件,不過硬鏈接相當於文件的別名,Java裏的引用,像chown這樣的操作會直接影響被指向的文件,而軟件可以指向目錄,同時可以賦予不同的屬性和權限。

鏈接

teamviewer-teamviewer10.desktop爲例,創建硬鏈接
wang@Bottom:~/桌面$ sudo ln /usr/share/applications/teamviewer-teamviewer10.desktop team.link
創建軟鏈接鏈接
wang@Bottom:~/桌面$ sudo ln -s /usr/share/applications/teamviewer-teamviewer10.desktop teams.link
wang@Bottom:~/桌面$ ls team.link teams.link -l

-rw-r–r– 2 root root 277 4月 27 14:35 team.link
lrwxrwxrwx 1 root root 55 6月 19 17:35 teams.link -> /usr/share/applications/teamviewer-teamviewer10.desktop

wang@Bottom:~/桌面$ sudo chown wang team.link
wang@Bottom:~/桌面$ sudo chown wang teams.link
wang@Bottom:~/桌面$ ls team.link teams.link -l

-rw-r–r– 2 wang root 277 4月 27 14:35 team.link
lrwxrwxrwx 1 root root 55 6月 19 17:35 teams.link -> /usr/share/applications/teamviewer-teamviewer10.desktop

嘗試再爲軟鏈接teams.lnk添加鏈接

鏈接比較

很明顯,硬鏈接仍然只指向teamviewer-teamviewer10.desktop,而軟鏈接則指向teams.lnk,刪除了軟鏈接teams.lnk後,軟鏈接則成爲死鏈接。

同理爲硬鏈接team.lnk添加鏈接

鏈接比較

奇怪的很,硬鏈接無法創建,而軟鏈接則指向team.lnk,直接成了死鏈接。

相比之下,.desktop更多用於述程序啓動配置信息,如可以通過腳本啓動程序(Exec)。

更詳細的可看理解 Linux 的硬鏈接與軟鏈接


和windows的快捷方式比較

直接gedit打開TeamViwer.exe.lnk

TeamViwer.exe.lnk

亂,將數據清洗一下後和lnk-parser(windows下用於查看.lnk快捷方式的工具)打開後的結果比較,除了Header是每個文件都有的,就會發現.lnkLink Target ID ListLink InfoString DataMetadata Property Store、、Special Folder LocationDistributed Link Tracker等段,類似結構體的形式。

Metadata Property

Metadata Property看兩者相同之處

ubuntu windows 說明
文件名 teamviewer-teamviewer10.desktop TeamViewer.exe.lnk
文件屬性名 Name System.ItemTypeText
文件屬性值 TeamViewer 10 TeamViewer.exe
擴展名 .desktop .lnk
類型屬性名 Type System.ItemTypeText
類型屬性值 Application 0x001f (VT_LPWSTR)
執行路徑屬性名 Exec System.ParsingPath
執行路徑屬性值 /opt/teamviewer/tv_bin/script/teamviewer 0x001f (VT_LPWSTR)(C:\Program Files (x86)\TeamViewer10\TeamViewer.exe)

兩者不同之處更多,如圖標:.desktopIcon制定的,而.lnk
則是依據exe文件的。

關於快捷方式的維基:File Shortcut

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章