Linux:桌面系统中的文件后缀和类型

相关阅读

Linuxicon-default.png?t=N7T8https://blog.csdn.net/weixin_45791458/category_12234591.html?spm=1001.2014.3001.5482


        Linux中的文件后缀与Windows系统有些不同,因为其似乎没有很重要,一个文件是否可执行对后缀没有要求。但是,后缀依然可以用于表示文件类型,也可以据此选择不同类型文件的默认打开方式。

        在Linux系统中,MIME(多用途互联网邮件扩展)文件类型机制是用来识别和处理不同类型文件的一种方式。MIME类型,也称为互联网媒体类型,最初是为了在电子邮件系统中识别不同格式的文件而设计的,但后来被广泛应用于HTTP传输中以及在操作系统如Linux中识别文件格式。

        MIME类型通常由两部分组成,类型(type)和子类型(subtype),用斜线分隔。例如,test/html表示HTML文档,image/jpeg表示JPEG图像文件。

        /usr/share/mime目录中有一些XML文件,它们是自动生成的,在安装或更新shared-mime-info包时由update-mime-database命令更新,它们规定了MIME类型、以及文件后缀和文件类型的映射关系。

        /usr/share/mime目录下的types文件中包括了目前的所有MIME类型,如下所示。

***********************
text/xmcd
video/3gpp
video/3gpp2
video/annodex
video/dv
video/isivideo
video/mp2t
video/mp4
video/mpeg
video/ogg
video/quicktime
video/vnd.mpegurl
video/vnd.rn-realvideo
video/vnd.vivo
video/wavelet
video/webm
video/x-anim
video/x-flic
***********************

        下面用/usr/share/mime/text目录下x-python.xml文件进行举例说明。

<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/x-python">
  <!--Created automatically by update-mime-database. DO NOT EDIT!-->
  <comment>Python script</comment>
  <comment xml:lang="ar">سكربت بايثون</comment>
  <comment xml:lang="be@latin">Skrypt Python</comment>
  <comment xml:lang="bg">Скрипт — Python</comment>
  <comment xml:lang="ca">script Python</comment>
  <comment xml:lang="cs">skript Python</comment>
  <comment xml:lang="da">Pythonprogram</comment>
  <comment xml:lang="de">Python-Skript</comment>
  <comment xml:lang="el">Δέσμη ενεργειών Python</comment>
  <comment xml:lang="en_GB">Python script</comment>
  <comment xml:lang="eo">Python-skripto</comment>
  <comment xml:lang="es">secuencia de órdenes en Python</comment>
  <comment xml:lang="eu">Python script-a</comment>
  <comment xml:lang="fi">Python-komentotiedosto</comment>
  <comment xml:lang="fo">Python boðrøð</comment>
  <comment xml:lang="fr">script Python</comment>
  <comment xml:lang="ga">script Python</comment>
  <comment xml:lang="gl">Script en Python</comment>
  <comment xml:lang="he">תסריט Python</comment>
  <comment xml:lang="hr">Python skripta</comment>
  <comment xml:lang="hu">Python-parancsfájl</comment>
  <comment xml:lang="ia">Script Python</comment>
  <comment xml:lang="id">Skrip Python</comment>
  <comment xml:lang="it">Script Python</comment>
  <comment xml:lang="ja">Python スクリプト</comment>
  <comment xml:lang="kk">Python сценарийі</comment>
  <comment xml:lang="ko">파이썬 스크립트</comment>
  <comment xml:lang="lt">Python scenarijus</comment>
  <comment xml:lang="lv">Python skripts</comment>
  <comment xml:lang="ms">Skrip Python</comment>
  <comment xml:lang="nb">Python-skript</comment>
  <comment xml:lang="nl">Python-script</comment>
  <comment xml:lang="nn">Python-skript</comment>
  <comment xml:lang="oc">escript Python</comment>
  <comment xml:lang="pl">Skrypt Python</comment>
  <comment xml:lang="pt">script Python</comment>
  <comment xml:lang="pt_BR">Script Python</comment>
  <comment xml:lang="ro">Script Python</comment>
  <comment xml:lang="ru">сценарий Python</comment>
  <comment xml:lang="sk">Skript Python</comment>
  <comment xml:lang="sl">Skriptna datoteka Python</comment>
  <comment xml:lang="sq">Script Python</comment>
  <comment xml:lang="sr">Питонова скрипта</comment>
  <comment xml:lang="sv">Pythonskript</comment>
  <comment xml:lang="tr">Python betiği</comment>
  <comment xml:lang="uk">скрипт мовою Python</comment>
  <comment xml:lang="vi">Văn lệnh Python</comment>
  <comment xml:lang="zh_CN">Python 脚本</comment>
  <comment xml:lang="zh_TW">Python 指令稿</comment>
  <sub-class-of type="application/x-executable"/>
  <sub-class-of type="text/plain"/>
  <glob pattern="*.py"/>
  <glob pattern="*.pyx"/>
  <glob pattern="*.wsgi"/>
</mime-type>

        XML文件中类似<comment>Python script</comment>的字段,规定了在桌面系统下,text/x-python类型文件在进行查询时显示的类型。最后的<glob pattern="*.py"/>字段,规定了哪些后缀的文件会被识别为text/x-python类型,不加说明后缀是大小写不敏感的,即.py、.PY、.pY和.Py都会被识别为text/x-python类型。

        下面给出了一个大小写敏感的例子,出现在x-c++src.xml中,其中的<glob pattern="*.C" case-sensitive="true"/>字段说明了只有大写C后缀的文件才会被识别为text/x-c++src类型。

<?xml version="1.0" encoding="utf-8"?>
<mime-type xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/x-c++src">
  <!--Created automatically by update-mime-database. DO NOT EDIT!-->
  <comment>C++ source code</comment>
  <comment xml:lang="ar">شفرة مصدر سي++</comment>
  <comment xml:lang="be@latin">Kryničny kod C++</comment>
  <comment xml:lang="bg">Изходен код — C++</comment>
  <comment xml:lang="ca">codi font en C++</comment>
  <comment xml:lang="cs">zdrojový kód C++</comment>
  <comment xml:lang="da">C++-kildekode</comment>
  <comment xml:lang="de">C++-Quelltext</comment>
  <comment xml:lang="el">Πηγαίος κώδικας C++</comment>
  <comment xml:lang="en_GB">C++ source code</comment>
  <comment xml:lang="eo">C++-fontkodo</comment>
  <comment xml:lang="es">código fuente en C++</comment>
  <comment xml:lang="eu">C++ iturburu-kodea</comment>
  <comment xml:lang="fi">C++-lähdekoodi</comment>
  <comment xml:lang="fo">C++ keldukota</comment>
  <comment xml:lang="fr">code source C++</comment>
  <comment xml:lang="ga">cód foinseach C++</comment>
  <comment xml:lang="gl">código fonte de C++</comment>
  <comment xml:lang="he">קוד מקור של C++‎</comment>
  <comment xml:lang="hr">C++ izvorni kod</comment>
  <comment xml:lang="hu">C++-forráskód</comment>
  <comment xml:lang="ia">Codice-fonte C++</comment>
  <comment xml:lang="id">Kode program C++</comment>
  <comment xml:lang="it">Codice sorgente C++</comment>
  <comment xml:lang="ja">C++ ソースコード</comment>
  <comment xml:lang="ka">C++-ის საწყისი კოდი</comment>
  <comment xml:lang="kk">C++ бастапқы коды</comment>
  <comment xml:lang="ko">C++ 소스 코드</comment>
  <comment xml:lang="lt">C++ pradinis kodas</comment>
  <comment xml:lang="lv">C++ pirmkods</comment>
  <comment xml:lang="ms">Kod sumber C++</comment>
  <comment xml:lang="nb">C++-kildekode</comment>
  <comment xml:lang="nl">C++-broncode</comment>
  <comment xml:lang="nn">C++-kjeldekode</comment>
  <comment xml:lang="oc">còde font C++</comment>
  <comment xml:lang="pl">Kod źródłowy C++</comment>
  <comment xml:lang="pt">código origem C++</comment>
  <comment xml:lang="pt_BR">Código-fonte C++</comment>
  <comment xml:lang="ro">Cod sursă C++</comment>
  <comment xml:lang="ru">исходный код C++</comment>
  <comment xml:lang="sk">Zdrojový kód jazyka C++</comment>
  <comment xml:lang="sl">Datoteka izvorne kode C++</comment>
  <comment xml:lang="sq">Kod burues C++</comment>
  <comment xml:lang="sr">Ц++ изворни ко̂д</comment>
  <comment xml:lang="sv">C++-källkod</comment>
  <comment xml:lang="tr">C++ kaynak kodu</comment>
  <comment xml:lang="uk">вихідний код мовою C++</comment>
  <comment xml:lang="vi">Mã nguồn C++</comment>
  <comment xml:lang="zh_CN">C++ 源代码</comment>
  <comment xml:lang="zh_TW">C++ 源碼</comment>
  <sub-class-of type="text/x-csrc"/>
  <glob pattern="*.cpp"/>
  <glob pattern="*.cxx"/>
  <glob pattern="*.cc"/>
  <glob pattern="*.C" case-sensitive="true"/>
  <glob pattern="*.c++"/>
</mime-type>

        下图展示了在桌面系统GNOME中,一个.py后缀文件的类型查询结果。 

        可以看出首先根据系统语言(这里是默认),显示了<comment>字段规定的类型名,并且在小括号中显示了MIME类型。

        不同的桌面系统的显示结果可能有差异,下面是桌面系统XFCE中,一个.py后缀文件的类型查询结果。

        其中根据系统语言(这里是zh_CN),显示了<comment>字段规定的类型名,即Python 脚本。

        需要注意的是,一个有后缀的文件,显示出来的类型是由后缀决定的,这可能与文件真实类型不符合。如一个可执行二进制文件,如果重命名以.py为后缀,则其显示出来的类型会是错误的Python 脚本。所以一个文件的后缀只是对其类型的一个暗示,但并不确保其准确性。如果要准确识别一个文件的类型,可以使用file命令,它是通过文件的魔术头识别文件类型的,因此更为准确,如下所示。

$ file test.py
test.py: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=8c8cfe14852611f912f695c4ff7fae0b6607382d, not stripped

        对于没有后缀的文件,桌面系统会根据文件内容尝试推断其类型,即如果他是一个二进制文件,则可能推断为executable (application/x-executable)类型。下面是一个例子展示了一个没有后缀的jupyter+json格式的文件被正确识别为了Jupyter Notebook (application/x-ipynb+json)类型。

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 简单的Jupyter Notebook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('Hello, world!')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/698962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业成功实施MES管理系统的七个建议

在当今数字化浪潮下&#xff0c;企业为实现生产过程的智能化、高效化&#xff0c;越来越多地选择实施MES管理系统。MES管理系统不仅上承公司级的ERP系统&#xff0c;获取计划、资源等数据&#xff0c;还与PLM、PDM等系统集成&#xff0c;获取BOM及工艺等数据&#xff1b;同时&a…

SpringBoot高手之路jdk动态代理

文章目录 JDK动态代理基于jdk的动态代理Aop底层就是基于动态代理实现的实现代码先写代理对象工具 JDK动态代理 基于jdk的动态代理 业务需求 通过动态代理技术,对service层的方法统计执行时间–创建代理对象 Aop底层就是基于动态代理实现的 jdk动态代理技术是基于接口做的代理…

计算机专业是否仍是“万金油”?—2024高考生的思考

随着2024年高考落幕&#xff0c;数百万高三学生将面对人生中的重要抉择&#xff1a;选择大学专业。在这个关键节点上&#xff0c;计算机相关专业是否仍是“万金油”的选择&#xff1f;让我们从多个角度来探讨这个问题。 本人985高校计算机类专业毕业&#xff0c;从事IT和互联网…

超详解——python函数定义和调用——小白篇

目录 1. 函数的参数 位置参数&#xff1a; 关键字参数&#xff1a; 默认参数&#xff1a; 2. 关键字参数 3. 参数组 4. 函数重载 5. 函数的返回值 单个返回值&#xff1a; 多个返回值&#xff1a; 6. 函数的内置属性 __name__&#xff1a; __doc__&#xff1a; 7…

【ATU Book-i.MX8系列 - TFLite 进阶】 NXP i.MX8M Plus 实现高效 Mobilenet SSD 物体检测

NXP i.MX8M Plus 实现高效 Mobilenet SSD 物体检测 一、概述 在 边缘运算(Edge Computing) 领域中&#xff0c;轻量级的模型扮演着举足轻重的角色。因此&#xff0c;如何在有限硬体资源下实现电脑视觉&#xff08;Computer vision&#xff09; 应用是个极具挑战性的课题。特别…

安享智慧理财金融测试项目

1. 项目介绍 安享智慧理财金融系统是基于 Java 语言开发&#xff0c;集 PC 端、APP 端、WAP 端为一体的 P2P&#xff08;个人对个人&#xff09;的借贷系统&#xff0c;提供了完整的借款和投资功能。 web用户端 说明&#xff1a;PC 网站&#xff0c;供借款人和投资人使用功能…

【浏览器清空证书】

chrome://net-internals/#hsts 在地址栏输入并访问&#xff1a;chrome://net-internals/#hsts

【回眸】Linux内核(十一) 进程间通讯 之 管道

前言 进程的介绍已经告一段落,接下来学习的内容是进程间的通讯. 进程间通信(IPC) 面试考点: IPC的通讯方式通常有:管道(无名和命名) ,消息队列,信号量,共享存储,socket,streams等.socket和streams支持2个不同的主机上的2个进程IPC. 管道通常指无名管道 特点: 1. 半双工(…

【稳定检索/投稿优惠】2024年艺术、语言与文化交流国际会议(ALCE 2024)

2024 International Conference on Art, Language, and Cultural Exchange 2024年艺术、语言与文化交流国际会议 【会议信息】 会议简称&#xff1a;ALCE 2024 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国桂林 会议官网&#xff1a;www.icalce.com 会议邮箱&#…

Hadoop 2.0:主流开源云架构(二)

目录 二、Hadoop 2.0简述&#xff08;一&#xff09;Hadoop 2.0由来&#xff08;二&#xff09;Hadoop 2.0相关项目&#xff08;三&#xff09;Hadoop应用 三、Hadoop 2.0部署&#xff08;一&#xff09;部署综述&#xff08;二&#xff09;传统解压包部署 二、Hadoop 2.0简述 …

企业微信hook接口协议,ipad协议http,取消扫码返回

简要描述&#xff1a; 取消扫码返回 返回类型&#xff1a; 100003 返回uuid&#xff1a; f7503bb5-7d27-408f-ab24-8c4ace7f 返回示例 {"Vid":1688853790599424,"Qrcode_key":"D368DC88254A3E79FF72942B588D7FBE","Corpid":197…

PLSQL 报错 could not locate oci.dll

0、确保PLSQL已激活。 1、在PLSQL安装包内搜索oci.dll&#xff0c;如果没有搜到需要下载 链接&#xff1a;https://pan.baidu.com/s/1HOfKAEFfuAGYACjfcwqJ1g 提取码&#xff1a;6evh 2、打开PLSQL&#xff0c;设置oci.dll的路径 ps&#xff1a;PLSQL安装包 链接&#xff…

AI预测体彩排3采取888=3策略+和值012路或双胆下一测试6月11日新模型预测第1弹

很抱歉各位小伙伴&#xff0c;端午节三天去了趟外地&#xff0c;没有按时更新3D和排三的预测。前面跟大家说过&#xff0c;8码定位是关键&#xff0c;8码定位能稳定在80%的命中率&#xff0c;才有望通过缩号缩至200-250注以内通过等额方式进行投资。由于前面的模型对8码定位的效…

程序猿大战Python——流程控制——其他控制语句

for循环 目标&#xff1a;掌握for循环的使用。 与while循环功能类似&#xff0c;for语句也能完成反复多次的执行。 for语法&#xff1a; for 临时变量 in 序列:满足条件时&#xff0c;执行的代码1满足条件时&#xff0c;执行的代码2…… [else:当for循环正常执行结束后&#…

odoo15升级odoo16遇到的问题及解决过程

odoo15升级odoo16遇到的问题 PyMuPDF 档案管理整理时,从15升级16出现如下错误: File "f:\od162306\dms\dmssp\models\shenqb.py", line 136, in doc_fj_pdf doc.SaveAs(ftem, FileFormat=17) # input_file.replace(".docx", ".pdf") F…

分离式光电液位传感器有哪些特点?

分离式光电液位传感器是一种先进的液位检测技术&#xff0c;在科学技术的不断推进下得到了广泛应用。相比传统的液位传感器&#xff0c;分离式光电液位传感器具有许多独特的特点。 传感器采用了先进的光学技术&#xff0c;将传感器装在需要检测液位的位置&#xff0c;并采用了…

重温react-01

创建react项目 // 第一步 npm install create-react-app -g // 第二步 create-react-app my-app目录介绍 my-app/README.md# 项目第三方依赖包node_modules/package.json# 一般用来存放静态依赖public/index.htmlfavicon.ico# 存放项目源代码&#xff0c;注意只有放在scr目录…

期末复习4---PTA之前题目复习

怎么在不能用strlen也就四没有string.h头文件的时候实现统计字符串的长度&#xff1f; 字符串的逆序&#xff08;看收藏里面的题&#xff09; #include <stdio.h> void f(char *p);int main() {char s[1000];gets(s);f(s);printf("%s",s);return 0; }void f(…

为啥影像导入GIS后,颜色会变?两个方法解决它!

不知道你有没有遇到过这种情况&#xff0c; 影像的正常颜色是这样的—— 可是导入到GIS后&#xff0c; 颜色竟然变了&#xff0c; 而且变得很奇怪—— 你也不必惊讶&#xff0c; 极大概率是因为数据源类型没有正确识别&#xff0c; 有两个方法可以解决这个问题—— 方法一…

告别Proteus,拥抱SmartEDA:电路设计新纪元,效率飞跃不是梦!

在数字化浪潮席卷而来的今天&#xff0c;电路设计行业也迎来了前所未有的变革。曾经&#xff0c;Proteus以其稳定可靠的性能&#xff0c;赢得了众多电路设计工程师的青睐。然而&#xff0c;随着技术的不断进步和市场的快速变化&#xff0c;我们需要一款更加高效、智能的工具来应…