ubuntu下的快捷方式

    • ubuntu下快捷方式
      • 和链接作比较
      • 和windows的快捷方式比较

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这样的操作会直接影响被指向的文件,而软件可以指向目录,同时可以赋予不同的属性和权限。

ubuntu下的快捷方式_第1张图片

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添加链接

ubuntu下的快捷方式_第2张图片

很明显,硬链接仍然只指向teamviewer-teamviewer10.desktop,而软链接则指向teams.lnk,删除了软链接teams.lnk后,软链接则成为死链接。

同理为硬链接team.lnk添加链接

ubuntu下的快捷方式_第3张图片

奇怪的很,硬链接无法创建,而软链接则指向team.lnk,直接成了死链接。

相比之下,.desktop更多用于述程序启动配置信息,如可以通过脚本启动程序(Exec)。

更详细的可看理解 Linux 的硬链接与软链接


和windows的快捷方式比较

直接gedit打开TeamViwer.exe.lnk

ubuntu下的快捷方式_第4张图片

乱,将数据清洗一下后和lnk-parser(windows下用于查看.lnk快捷方式的工具)打开后的结果比较,除了Header是每个文件都有的,就会发现.lnkLink Target ID ListLink InfoString DataMetadata Property Store、、Special Folder LocationDistributed Link Tracker等段,类似结构体的形式。

ubuntu下的快捷方式_第5张图片

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

你可能感兴趣的:(ubuntu)