![让 Linux 识别自定义扩展](https://linux22.com/image/107363/%E8%AE%A9%20Linux%20%E8%AF%86%E5%88%AB%E8%87%AA%E5%AE%9A%E4%B9%89%E6%89%A9%E5%B1%95.png)
这个问题是针对一个学校项目的,所以我不希望只得到一段代码或任何东西,只是关于如何开展我的工作的一些指导。
我希望能够在操作系统中识别我自己的自定义文件扩展名(例如 textfile.hello),并且能够执行一些操作,例如使用某些文本编辑器默认打开所有 .hello 文件。
我将如何实现这种行为?根据我的理解,我将不得不编写一些在内核的文件子系统中运行的代码,但不能 100% 确定如何进行操作,或者是否正确。
提前致谢!
答案1
正如 Stephen 在评论中所述,通过扩展名识别文件并将它们与打开它们的程序关联起来通常是由您的桌面环境(KDE、gnome 等)完成的。另一方面,在许多情况下,DE(桌面环境)将使用实用程序file
(或类似的实用程序)来确定文件的类型幻数。如果是这种情况,您可能必须定义更具体的规则。例如,在我的计算机上 - 使用 Kubuntu,我使用 Kate 打开普通的 ascii 和 utf 文件,但是当所述文件以 .c、.h、.cpp、.hpp、.cmake 等结尾时,它们会使用 emacs 打开反而。正如 @quixotic 指出的,这种扩展名匹配通常是通过xdg-open
.
在大多数桌面环境中,您可以在系统设置菜单中的某个位置更改此设置,或者通过在[右键单击 -> 打开方式]操作期间手动定义它。
作为旁注(不是真正的主题,但相关),即使没有扩展名,也有一些方法可以识别一些专门的 ascii 文件:例如,正确制作的 shell 脚本将在任何非注释行之前包含 shebang。