强制 nautilus 忽略扩展

强制 nautilus 忽略扩展

我们都知道(或有一天会知道),Ubuntu(或一般的 GNU/Linux)并不使用文件扩展名来识别文件类型。而是使用神奇数字

A神奇数字是与每个 Linux 文件相关联的数字,通常是文件的前几个字节,用于标识文件类型。它由 Linux 命令行实用程序使用文件显示与文件相关的信息。

因此,当我们使用命令检查文件类型时file,它会给出适当的文件类型,而不管其扩展名是什么。

因此 mp3 文件

aditya@aditya-desktop:~/Music$ file 'music.mp3'
music.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1,  64 kbps, 44.1 kHz, JntStereo
aditya@aditya-desktop:~/Music$ file 'music'
music: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1,  64 kbps, 44.1 kHz, JntStereo
aditya@aditya-desktop:~/Music$ file 'music.txt'
music.txt: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1,  64 kbps, 44.1 kHz, JntStereo
aditya@aditya-desktop:~/Music$

相同的 expt,当尝试鹦鹉螺,当文件包含以下信息时,它会认为该文件是音乐文件:.mp3或者无延期,但当它被赋予。TXT扩展名,它会将其视为文本文件。

所以主要问题是,

  1. nautilus 使用扩展来识别文件吗?
  2. 我怎样才能强制 nautilus 忽略扩展并使用魔法数字?

答案1

  1. 正如您注意到的,是的,Nautilus 使用文件扩展名(如果存在)作为优先级来确定文件类型。

  2. 您可以编辑文件/usr/share/mime/packages/freedesktop.org.xml,搜索要忽略的扩展名并删除该行。以下是示例。

假设我不希望 Nautilus 关联“.txt”扩展名,而是希望它查看“神奇数字”。

一、编辑文件:

sudo gedit /usr/share/mime/packages/freedesktop.org.xml  

我将查找以下行<glob pattern="*.txt"/>并将其删除:
在此处输入图片描述

二、保存。

三、运行:

sudo update-mime-database /usr/share/mime  

完毕!

== 效果 ==

mp3 文件如下所示:

在此处输入图片描述

如果我将扩展名改为 txt 的话,它看起来是这样的:

在此处输入图片描述

如果我编辑上述文件然后更改扩展名,它看起来会是这样的:

在此处输入图片描述

答案2

我猜问题在于某些文件(例如“txt”)很难通过魔法解决,因此总是需要一个 glob。

而像 mp3 这样的东西有一个定义的魔法序列。

相关内容