ubuntu下的快捷方式

本文详细介绍了Ubuntu系统下快捷方式的实现原理,特别是.desktop文件的构成和作用。通过对比Linux的软链接和硬链接,阐述了它们与快捷方式的不同。同时,文章还探讨了Ubuntu快捷方式与Windows快捷方式(.lnk)的异同,揭示了.desktop文件在启动配置信息方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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看两者相同之处

ubuntuwindows说明
文件名teamviewer-teamviewer10.desktopTeamViewer.exe.lnk
文件属性名NameSystem.ItemTypeText
文件属性值TeamViewer 10TeamViewer.exe
扩展名.desktop.lnk
类型属性名TypeSystem.ItemTypeText
类型属性值Application0x001f (VT_LPWSTR)
执行路径属性名ExecSystem.ParsingPath
执行路径属性值/opt/teamviewer/tv_bin/script/teamviewer0x001f (VT_LPWSTR)(C:\Program Files (x86)\TeamViewer10\TeamViewer.exe)

两者不同之处更多,如图标:.desktopIcon制定的,而.lnk
则是依据exe文件的。

关于快捷方式的维基:File Shortcut

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值