如何修改Nemo和Nautilus的文件分类规则,使PHP、JS文件独立归类
嘿,这个问题我碰到过好多次了!Nemo和Nautilus把JS、PHP文件标成“Program”,要么是文件权限带了可执行标记,要么是MIME类型的关联出了问题。下面分两种情况来解决:
第一步:先排查最常见的原因——文件可执行权限
如果你的JS/PHP文件被设置了可执行权限(比如用chmod +x改过),文件管理器会默认把它识别为可执行程序,而不是脚本文件。解决起来很简单:
- 单个文件:运行
chmod -x your-file.js或者chmod -x your-file.php - 批量处理当前目录下的所有JS/PHP:
chmod -x *.js *.php
改完之后,刷新一下文件管理器(按F5),看看类型是不是变过来了。如果还没好,再往下看MIME类型的配置调整。
第二步:自定义MIME类型关联(用户级,不影响系统全局)
Nemo和Nautilus都遵循freedesktop的MIME标准,我们可以在用户目录下创建自定义配置来覆盖默认规则:
- 创建MIME定义文件
打开终端,用文本编辑器创建一个自定义MIME配置文件:
nano ~/.local/share/mime/packages/custom-mime-types.xml
把下面的内容粘贴进去(里面已经包含了JS和PHP的正确MIME定义):
<?xml version="1.0" encoding="UTF-8"?> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> <!-- 配置JavaScript文件的MIME类型 --> <mime-type type="application/javascript"> <comment>JavaScript file</comment> <glob pattern="*.js"/> <glob pattern="*.mjs"/> </mime-type> <!-- 配置PHP文件的MIME类型 --> <mime-type type="text/x-php"> <comment>PHP script</comment> <glob pattern="*.php"/> <glob pattern="*.php3"/> <glob pattern="*.php4"/> <glob pattern="*.php5"/> <glob pattern="*.phtml"/> </mime-type> </mime-info>
按Ctrl+O保存,Ctrl+X退出编辑器。
- 更新MIME数据库
运行下面的命令让系统加载我们的自定义配置:
update-mime-database ~/.local/share/mime
- 重启文件管理器
为了让更改生效,需要重启Nemo或Nautilus:
- 对于Nautilus:
nautilus -q,然后重新打开文件管理器 - 对于Nemo:
nemo -q,再重新打开
做完这些,你的JS文件应该会显示为“JavaScript file”,PHP文件显示为“PHP script”了。
额外提示:验证MIME类型
如果想确认文件的MIME类型是否正确识别,可以用file命令:
file --mime-type your-file.js # 正确输出应该是:your-file.js: application/javascript file --mime-type your-file.php # 正确输出应该是:your-file.php: text/x-php
内容的提问来源于stack exchange,提问作者Fernando Escalante Gon
相关产品推荐
相关产品推荐

