天天财汇 购物 网址 万年历 小说 | 三峰软件 小游戏 视频
TxT小说阅读器
↓小说语音阅读,小说下载↓
一键清除系统垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放,产品展示↓
首页 淘股吧 股票涨跌实时统计 涨停板选股 股票入门 股票书籍 股票问答 分时图选股 跌停板选股 K线图选股 成交量选股 [平安银行]
股市论谈 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
商业财经 科技知识 汽车百科 工程技术 自然科学 家居生活 设计艺术 财经视频 游戏--
  天天财汇 -> 设计艺术 -> 没有文件后缀名,是先进设计还是落后设计? -> 正文阅读

[设计艺术]没有文件后缀名,是先进设计还是落后设计?

[收藏本文] 【下载本文】
Windows的绝大多数文件都有后缀名,而Linux的一些程序等都是没有后缀名。后缀名到底是先进设计,还是屎山糟粕?
又是历史题…
为什么用后缀名区分文件类型?简单一句话——在设计这样的机制的当初的产品环境下,打开一个文件看内容,即便只看开头几个字节,也远比枚举文件名开销大,并且大到难以承受的地步。
我有个答案和这个话题有相关,可以先去看一眼,我就不重复其中说过的一些内容了:
但问题问先进与否…这事就可以多讨论一点。首先就是,什么叫先进?我先说好,我不知道啥叫先进。只能讨论一些常见的设计取舍点,或者说反驳一些常见的针对后缀名的指摘。
如果说后缀名判断文件类型的方法不能准确判断,那其实打开文件去看也不能。很多流行的往图片里插Zip,或者在可执行中插入第二个可执行(病毒)的方法,都是很有力的例子。即便文件全部读了,也并不能准确判断文件的实际类型。
如果说后缀名容易重复导致错误处理,那同样地,实际打开文件其实也不能避免。大家可能知道一个最常见的冲突后缀名叫.data,但实际上最常见的冲突文件类型是所有zip package based。一个很典型的例子是ODF,就是微软的Open Document Format,.xlsx、.docx之类,不同编辑器编辑后互相并不能100%兼容。我最近比较头疼的例子是.3mf文件,不同软件使用之后的3mf文件虽然互相能打开但功能不同导致各种错乱,当然也可能就完全打不开。
很显然,读文件内容都不能解决的问题,使用任何性质的介于后缀和文件内容之间的信息也都做不到。比如有说法认为用额外的metadata更好。但技术上说,metadata的内容本质是文件内容的一种有直观意义的摘要。写的足够短就能放进后缀名里。如果用单独的文件放它,它就既没有后缀名方法的性能,又做不到超出全文件读取的准确性。这个方案的优势是它对人类很友好,但完全不能解决文件内容的混乱问题。
至于什么导致文件名变长之类的……就不反驳了吧,都是常识性的事。
如果你问我更终极的答案,也就是不直接回答这个问题而是去讨论文件类型该怎么设计更好,我会说这是个无解的问题,因为这本质是一个大型协作问题,人类目前没有很好的解决方法。
如果说要更现实一点的办法,我会建议在设计文件类型时做一个相对完善的工程方案。使用后缀名作为给用户呈现的提示性信息,同时软件这边应该并不依赖后缀名做判断,而是尽可能完整分析文件内容。同时,自家软件如果fork了一些通用格式,应当做到人过留痕,在一个相对共许的地方增加信息防止他人的代码做出错误处理。这最好在文件后缀上也有所体现。
没有后缀名的话,命令行通配符也不好操作啊,本来一句:

del *.tmp  *.log

就能搞定,现在必须增加一堆函数判断哪个文件是log文件,哪个是临时文件。
当然也可以通过规范文件夹名称来解决:

del /tmp/*
del /log/*

恭喜你,现在你拥有了文件前缀名
首先,Linux下文件没有扩展名的说法是错误的。
Linux下,图片文件、视频文件等,一样要有扩展名。否则,很多程序(比如静态文件的Web Server)就无法正常工作。
至少在习惯上,Linux的普通资料文件,是需要有扩展名的。
Linux和Windows最大的区别是,可执行文件在习惯里是可以没有扩展名。
因为对Windows而言,执行权限是一种默认具有的权限,而对Linux来讲,执行权限是一种稀有权限,默认不具有。
另外,Windows下可执行文件的扩展名其实也不是总起作用……
Windows本身应该并不检查程序的扩展名,你可以对着任何名字去CreateProcess。
检查扩展名的是Shell api和Explorer,也就是GUI层。
当你双击一个文件时,GUI层需要一个依据来判别文件是直接执行它本身,还是调用另一个程序来打开它。
这一点,不管是Windows GUI还是Linux GUI都是一致的。
只不过,对于可执行程序而言,Linux做了特例来处理。
因为Linux下,程序具有执行权限是一种罕见权限,所以Linux GUI遇到这种权限的文件,可以直接把它交给shell(sh或者bash)去处理。
Windows就只能靠扩展名去判断该不该直接执行该程序(exe, com)或者交给shell处理(bat, ps1)。
其实这件事本身是对Dos和windows 3.1的一种兼容性的延续。
Dos时,连com和exe都要严格区分。
com是直接执行的最底层代码,最大64KB。
exe是间接执行的代码,等于从操作系统的一个预处理程序里跳转过去的,并不是一个完整的程序。
扩展名表示这种区别,本质上是一种trick,不是规范的做法。
规范的做法肯定是属性描述符号。
但当时存储比较紧张,用文件名的结尾当判定符号,比较省空间。(因为大部分文件的作用是用它的程序规定的,不需要属性指示)
你要说,老Mac OS那种没有扩展名,但在文件属性里有类型码、创建者码两个识别码的设计可能还要先进一些。一个用来标记文件类型,一个用来标记创建/打开它的应用程序。对于应用程序而言,类型码固定是APPL,创建者码就是它本身的标记。


然而这些至少当时是MFS/HFS/HFS+这样老苹果的文件系统独有的特性,想与其他操作系统交换文件,还得套一层封装,否则这些属性就会丢失。7.5系统之后能把其他系统来的文件,通过扩展名映射到这两个编码的“PC Exchange”功能只负责Finder里能复制的文件,而各种能下载文件的网络软件,比如浏览器之类,都得自己搞一套。否则,就只有用户自己用ResEdit之类的工具改这两个编码了。
而且扩展名的所有问题,这种方式都有。早期的老Mac OS里面通用打开文件对话框,判断文件是否显示用的是类型和创建者码的二元组,导致同类型文件用其他程序打开都很麻烦,后来才慢慢改掉。
这种编码的影响,现在也许就只剩下媒体文件里的FourCC算是最大的了,这还是老苹果时代QuickTime文件格式里面用类似方法标记元素的影响。
Windows最开始就是图形界面,在图形界面中,需要直观展示一个文件的属性,如果每个文件都带一个扩展名,那么操作系统不用读文件的内容,光从文件名就能选择一个合适的图标来表示这个文件了。从Windows推崇的使用习惯来说,也是以文件为中心,而不是以程序为中心,也就是,用户看到文件就点击,然后操作系统对应扩展名的程序就能选择对应程序,激活对应程序打开这个文件——毫无疑问,如果文件名中带扩展名,这要容易实现得多。
Linux最开始就是命令行界面,对于命令行界面用户来说,是以程序为中心,也就是,使用习惯是先确定用什么程序,然后再打开对应文件,这时候,一个文件真正重要的只是可执行还是不可执行,而已,有没有扩展名不重要,反正用程序打开文件的时候,都要读这个文件,从而知道是不是我这个程序能够支持的文件。
所以,文件名中有扩展名,对Windows这样的图形化环境是优秀设计,对于命令行界面则无所谓。
当然,Windows之前微软有DOS,DOS也是命令行环境,而DOS时代就有习惯是文件包含扩展名,当时是希望用户dir一下也能看出那些文件是exe或者bat,可以说是无心插柳,这个设计的优势到了Windows时代更明显。
这个问题可以从两个方向讨论:
1. 给计算机使用:如果一个程序通过后缀名来作为内部逻辑唯一判断标准,那肯定是屎山糟粕。比如如果删掉后缀名就无法打开某些文件,那肯定是屎山。但是如果通过后缀名辅助判断,那就是先进,比如同样是文本文件,.txt我一般使用系统自带的文本编辑器打开,.js我会配置成使用vscode打开,.html我会使用浏览器打开,没有后缀名作为辅助判断怎么做到呢?
2. 给人使用:后缀名是先进设计,就如上述文本文件来说,我可以一眼看过去就知道这个文件可能是什么,是不是我要找的文件,是不是目录,无论我在桌面环境还是命令行环境,都不会弄混。比如我不可能把一个1.js认为是我要找的html文件,在色彩受限的控制台环境中,我也可以很容易区分1.mp4是一个视频文件而不是一个目录。
综上来说后缀名算是一种很好的设计,对计算机可以跨文件系统提供一些辅助数据,对人可以直观区分各种文件类型。但是如果只依赖后缀名,那就是屎山。
我觉得有后缀名更好,explicit is better than implicit
然而Windows默认隐藏后缀名。
当然是落后。
说linux没扩展名多的,看看.tar.xz就知道了。
.tar.xz能一眼看出该怎么用,去掉了谁能看出来
最先进的是用 MIME 区分, 差一点的是用后缀区分, 再差的是用魔数区分, 最差的是没有区分靠人判断.
显然信息越多越友好, 无论是对人还是对计算机都跟友好, 更先进.
MIME 同时包含分类信息, 文件类型, 编码信息, 且无冲突, 根据 MIME 分配可执行程序是最合理的.
缺点就是不属于 proxy, 好多地方不支持, 其实常用的 .gitattribute 就是个低配版 MIME.
后缀就差一点, 主要是比较混乱, 好多程序用相同的后缀名, 一打开发现不是, 直接编码错误.
比如好多人学 typescript, 结果 ts 关联了个多媒体, 直接给你一点小小的 mediaplayer 震撼.
好处则是比较短, 且能直接根据 OsStr 判断, 不需要读 metadata, 非常快, 比如常用的 glob 模式就是.
glob 就是 rm -r *.jpg 这种命令传入的参数, 基本所有的命令行工具都支持 glob 匹配, .gitignore 之类的也使用 glob
你要是把后缀抹了就麻烦了
再差一点的就是魔数, 没法根据外部信息推断, 只能写文件里了.
文本文件则是用 shebang, 就是 #!bin/bash -x 这种
好处则是跨平台, 跨协议, 传来传去, 任何地方都能区分.
最差的就是啥也没有, 程序员觉得是啥就是啥, 一天到晚编码报错.
文本人还可以猜这啥源码, 二进制鬼去猜怎么解码吧.
好像有人觉得后缀名是Windows发明的?
1973年的Unix就用了.c、.o、.a,总不能是从Windows(1985年发布第一版)抄的吧


当年的cc对后缀名的利用方式,和现在的程序是一样的。这么多年似乎也没什么被广泛接受的更先进设计(除了应对文件名未知的场合而发明的MIME),所以大概后缀名至少是不坏的设计吧
想象一下哈,如果抛弃的文件后缀会怎么样?
最直接的,操作系统没有办法直接通过文件名判断这个文件是什么类型的文件,只能够通过读取文件内容并解析文件结构来判断"这个文件到底是什么文件".
好,可能对于很多的文件并不是什么问题,但按照文件格式规范,很多的流媒体格式是允许将数据头插入到文件的非头部位置的,就像多年前流行的图种,你发现把压缩包append到文件尾部,依然可以正确解压这个文件,这意味着严格来说你必须扫描整个文件,才能知道这个文件是不是你要的格式,当然,它甚至可以包含多种格式的数据头,那你到底挑哪个?如果有一个10GB的超大文件,岂不是我光要认他是什么格式的,就得要半天?
按上述说法你可能说有点钻牛角尖了,这没什么问题我们只扫描头部,如果认不出来,索性我就不认了,但这里又来了第二个问题
如果我开发了某个程序,保存某种格式文件,我想让操作系统知道,如果有这个格式的文件就请用我的程序,如果有后缀名,这个过程非常的简单,告诉操作系统这个后缀名用我的程序就行了,但如果没有后缀,那么我必须提供一个类似于"格式判断"程序,然后把这个"格式判断"程序注册给操作系统,之后,只要用户打开一个文件,不管它和我的程序有没有关系,都需要经过我的"格式判断"扫描一遍.当然理论上格式判断程序将会拥有整个文件的读权限
那就好玩了,如果我想做恶意攻击,完全可以写一个这样的"格式判断"程序,不管用户打开什么文件,我都先扫描一遍,看看有没有"账号密码""私人*照""区块密钥"什么的,如果有,通通划给我的程序,然后再把数据上传给我服务器。
当然还有更直接的,我直接做一个可执行文件,然后骗人说这是群里上午刚刚弄到的涩图,对大多数没有安全意识的人,说不定到手就点了。
最后,绝大多数用计算机设备的人,根本对计算机毫无兴趣,更对这些东西一窍不通,他们只希望当点击这个文件的时候能够最快最合适得到他们想要的结果,文件后缀不论是计算机扫描还是人眼直接看,都是我能想到的最快最直观并能够尽可能减少冲突的能了解这大概是一个什么文件的方式,否则你就只能用十六进制浏览器看数据结构了。
这个时候还讨论什么“优不优雅”,难道你有更好的办法?
有后缀名比较先进。
因为可以做到跨平台、跨媒体的一目了然。
“跨平台”的意思大家都懂,不需要解释。
“跨媒体”的意思是,你在书本上看到一张图片,里面是30年前的某个操作系统的截图,你可以通过截图里面的文件后缀名获得更多信息。你总不能要求印刷在纸上的图片里面自带各种额外的数据告诉你截图里面的文件的类型吧?
当然你也可以用前缀名代替后缀名,用其它符号代替点号,比如data.txt完全可以写成txt#data, girl.jpg完全可以写成jpg#girl,这样就没有文件后缀名了,也很先进。
有个相反的设计。 Linux 的隐藏文件是看文件名体现,文件名以 “.” 开头是隐藏文件。而 Windows 的隐藏文件则是看文件属性。哪个先进,哪个落后?
做工程的人,不应该有先入为主的“先进”还是“落后”的判断。应该从当前的需求出发,并从可行的方案中根据与需求的匹配程度和采用的成本回报等量化指标做出取舍。换言之、匹配程度高的、性价比高的,对于当前的需求来说就是先进的,反之就是落后的。
以判断文件类型这个需求来说,无非两种方式:一种是通过文件本身;一种是通过文件的描述。这两种方式各有优劣:通过文件本身的话,就要求文件格式本身的设计中需要包括类型描述这种可能和文件本身内容无关的额外信息;如果通过文件的描述,那么无论是通过文件的名字或元信息字段,都有会有描述不正确的可能。哪种先进?全看需求。
还有,先不先进和是不是屎山,是完全不搭界的两种判断维度。题主显然不懂技术。


高博
卷积文化传媒(北京)有限公司 联合创始人
8803 次赞同
去咨询
本人内容矩阵[1][2][3][4][5][6]长期提供丰富资讯,欢迎关注、订阅、评论、转发。
参考^官网 https://gao.bo^微信公众号 https://dt.sg/wxmplat^知识星球 https://dt.sg/pzsxq^豆瓣人物专页 https://dt.sg/douban^Bilibili https://dt.sg/bilibili^抖音 https://dt.sg/dyqrpsn
无论有没有文件名后缀,都是需要标识文件类型的。不同的平台用不用的方法,文件后缀名只是其中一种方法而已。
例如说 HTTP 协议里面,URL 理论上是不存在文件后缀的,任何合法的 URL 返回的资源都可以保存为文件。那如何标识某个 URL 返回的资源类型?用 Content-Type 的 Header。如果 Content-Type 说这是个 HTML,那浏览器自己就能打开并显示;如果这是个 PDF,那浏览器就要把它当作 PDF 打开。
Linux 理论上只在文件系统上标识文件是否为可执行,因此不需要像 Windows 那样用 exe 后缀来标识可执行文件。除此之外,存储数据的文件在 Linux 中往往也是有后缀的。
最后还有一种平台不可能兼容得过来但每一个应用程序可以自己做的标识,那就是文件内部的数据格式。例如说,每一个 zip 文件的头部都写着 PKZIP,PK 是原作者名字的缩写,只要看到正确的 zip 文件头那就是 zip 文件。但平台不可能记录所有应用程序发明过的数据格式,所以只能让每一个应用来区分某个文件是不是自己支持的数据格式。
如果是拥有 GUI 的操作系统,可执行文件后缀显然是更先进的。系统能够从文件名迅速判断某个文件是不是可执行,是的话按照已知的格式读取这个应用的图标、名称等信息,显示出来给用户看就特别友善。
Linux 那些命令行可执行文件,在 GUI 里面通通显示为没有独自图标的默认图标,这对用户来说确实比较落后。但如果不使用 GUI,完全通过命令行来执行这些文件,那有没有后缀其实没有区别。
Linux 能够根据文件系统的可执行标识来有区别显示文件名(通常是显示为不同颜色),命令行用户一眼就能看出来哪个是可执行文件。没有后缀的话,输入命令时更快捷,无需重复所有可执行文件都一样的同一个后缀。
所以说,最终还是要看使用场景,你到底是图形界面用户还是命令行用户。
没有后缀名也是一种特殊的后缀名,所以这不是有没有后缀名的设计区别,而是用什么作为可执行文件的后缀名的设计区别。
如果你是指通过文件头部的内容来判断具体用什么程序来执行,那就是另一种设计思路了。
对于一个长度有限的文件来说,存放类型信息的位置可以是文件头也可以是文件尾(或者两者兼有)这就造成了不可避免的分歧。
而后缀名的优点就是,从名字上就能知道它确定了信息在文件名的末尾。
后缀名都要削,是嫌工作量太少了嘛?
这东西是给人看的
给人看的
给人看的!!!
有后缀名相比于没有后缀名,当然是先进设计。
文件本身只是一堆二进制数,按不同的协议/格式去解析,得到不同结果,用对了那就正常、用错了就是乱码。为了规范,文件在真正的内容之前都加了一些文件头,用来指示文件格式。对于程序来说,读这个文件头就能知道格式,就知道有没有能力解析,即是否支持这种格式,跟后缀名没有半毛钱关系。
有没有后缀名是不影响程序读文件的。那么,文件后缀名是为了方便谁呢?主要还是方便用户。
如果没有后缀名,用户光靠眼睛是看不出来文件格式的,为了用对程序去打开,需要依赖一个专门程序(比如file命令)先读文件头再选合适的程序,这当然增加了负担,即便交给操作系统自动跑这个流程,也增加了不必要的开销。有了后缀名,操作系统把后缀名和对应程序关联关系存起来就行,用一点点存储空间代价,换取了时间效率,这才是核心。
更重要的是,操作系统还给了用户定制的自由。每种文件格式,可能支持它的程序有很多,用户可以定制最喜欢的去操作,即默认程序。
有人会提,Windows为啥默认不显示后缀名。虽然但是,不显示不代表删除了,Windows依然存储了后缀名与关联程序的关系表,可能是微软觉得文件名长了看着碍眼,小白用户无需关注,但稍微懂点计算机的都会把后缀名显示出来,毕竟Windows下有着多层".doc.docx"文件后缀的名场面。
在自由度不够的系统(不点名iOS了)里,每个程序就是一个私有领地,格式是程序定制,操作的逻辑是先选程序,再选要操作的文件,不要后缀名确实也行。但这种情况,也可以做到:程序A操作的文件,完全不给程序B使用,甚至把文件都可以藏起来不给别的程序看,删除则把程序连同新建、编辑的文件数据全部删除。够不够先进?
个人见解:
1、后缀名本身并没所谓的先进不先进 他仅仅只是起到提示作用。
2、win上很多软件根据后缀名来决定文件的处理方式的做法对普通用户更友好,但也带来相当多的安全性问题。
3、*nix 上很多文件没有后缀名,也确实给系统的使用带来较多的负面体验。
1.计算机程序不完全靠后缀名来识别,主要靠文件头,逻辑才可靠。但对用户极度不直观。
2.后缀名的作用其实是给用户看的,可惜windows设计的一大败笔就是默认隐藏后缀名。
文件如何打开,有两种策略
一是用户自己指定,比如同一个python代码文件,可以通过vim打开来编辑,也能用python解释器打开来执行代码。这种情况下python代码文件可以随意命名,理论上不需要扩展名,甚至可以把xx.py重命名叫xx.mp3。但是如果有扩展名会让用户更容易区分文件类型,否则不同类型文件混在一起很容易忘掉。
二是通过某种方式告诉操作系统文件类型,当打开文件的时候会自动选择默认程序。比如说在windows下双击xx.py文件,就会执行python代码。而想要在linux下做到这一点,往往需要在文件头部写入#!/usr/bin/python,告诉系统用python打开这个文件。看起来二者都能满足需求,实际上后者比前者多一次打开文件读取文件头部的操作,并且无法在二进制多媒体文件比如mp3里写入文件头。而所谓的MIME,不过是把这份信息存到了指定位置,本质没变。
所以说除了某些约定俗成的文件,比如gcc,谁都知道这玩意是干嘛的,不需要扩展名以外,其他情况扩展名总是有比没有好。
扩展名目前的问题是没有个统一的标准,三个字符快被用完了。
没有后缀/隐藏后缀对普通用户都是落后的,他们可能只会按部就班操作电脑,并不会看什么图标、什么类型,只知道这个文件可以直接打开,那它就是文件夹。如下:
mingw64下载后直接出现文件不用解压是正常的吗?求问 为什么按照网上的教程下载jieba库后setup.py解压后变成了setup?
在这一点上,Windows 一直走在落后的前列。


扩展名是在文件么上的,列举文件的时候顺便就能根据扩展名告诉你文件类型,虽然不是很准确
不放文件名上你准备放哪里呢?
单独存个info文件?那这个文件怎么维护,我拷贝走时怎么办?存其他地方同理
存文件最前面,那你告诉我是不是得所有文件都遵循这个规范?而且所有系统都得支持,否则就不认识这个文件了
扩展名就是最方便的会跟着文件走,又不影响文件解析,不需要特殊支持,能一看就知道是啥格式的东西了。当然重名是他最大的问题。
对最终用户(user)来说,后缀名可用来展现给用户查看,算是个不错的设计。
对程序(app)来说,后缀名只应当作为最后的后备方案,程序逻辑本不应当依赖后缀名进行文件类型的判断。
Windows 的设计是让用户直接操作文件,由文件操作来触发应用(app)的操作。Windows希望一切程序的入口是它的文件管理器,所以从文件后缀名识别可选的操作会显得很重要。
但是现代操作系统,比如iOS/Android/MacOSX/Linux等的设计,是让用户操作具体的app,由app来决定具体的文件是否可用。这种情况下,文件的类型由app负责判断,此时,后缀名的意义就非常小了。毕竟,现代操作系统并不推荐用户以文件管理器作为入口。
现代程序员的最常见操作,也是先打开 ide 然后从 ide 中打开项目,而不是先打开文件管理器然后从文件管理器中打开项目。——而后缀名本身,仅仅用于让用户在视觉上识别,以及让文件管理器用来管理入口。
当人人都想要抢占入口的时候,大家是不能接受Windows文件管理器作为入口的。
总结:
个人计算平台的入口,最初是文件管理器,然后是浏览器,再然后,变成了手机。
如果【从文件到app】的关联,变成了【从app到资源】的关联,两者的方向已经逆转,文件名已经不像当初那样重要了。
如果一定要说的话,没有后缀名可能是更好的一种方式,如果你想象Linux的目录以及可执行文件,他们如何确定类型呢?是靠文件系统标志。换句话说,没有后缀名,就很可能意味着利用文件系统来存储文件类型。而个人看来,利用文件系统来存储文件类型,确实比用文件名后缀要更靠谱一些。
如果一开始的时候,文件系统就被设计为专门保留一个文件类型字段,那么也许,现在文件也都不再需要后缀名了吧。
不能单论先进落后,只能说各有优缺点
首先文档文件基本都是有后缀名的,例如jpg, png, 所以不讨论这个不分。
主要还是讨论可执行文件,windows一般以exe结尾,linux一般不加后缀名。
所以linux下需要想办法区分文件夹、可执行文件、还有没有后缀名的不可执行文件。好在linux下这点是比较容易区分的,ls -l的时候就可以看到,文件夹会有d标记,可执行文件一般会有x标记,不可执行的无后缀名文件一般没有d标记也没有x标记。
windows下更明显,exe结尾的就是可执行的,但缺点也很显然,一个目录下可以同时存在abc.exe, abc.com, abc.bat, abc.cmd等等,当我在命令行下写abc回车,会执行哪一个呢?毕竟要用户每次都强制敲打全名abc.exe太麻烦,但省略了后缀名又会产生疑惑。可能你看到一个abc.bat,你输入命令abc执行它,结果由于没有看到还有一个http://abc.com,结果执行的是那个http://abc.com。
linux下就没有这种烦恼,毕竟命令名就是全名,只是很尴尬的你写完命令abc以后,可能还会写一个abc.d文件夹来放别的内容,我是觉得这个挺丑的,不如abc.exe和abc文件夹美观。还有就是光打ls并不能第一时间了解哪些是可执行文件,有些彩色的控制台可以看到,但遇到黑白的控制台就麻烦一些了。而且windows下dir *.exe就能做到的事情,linux下的命令就没有那么直观。
实在是不喜欢没有后缀名的设计。在看到没后缀名的文件时,总要发会儿呆,想想这个是什么文件。或者还要参考额外的信息才能知道。就这么一小会儿时间,累积下来,是会比有后缀名更累的。
当然是先进设计。
实际上后缀名在windows上也不是必须的,程序在读取文件的时候,仍然是根据文件数据开头的标识来解析的。这点如果使用7z解压缩的,应该体会很深。
后缀名的设计,主要是方便用户。
我给个不同的角度。从讲解电脑知识和编写软件文档的角度看,文件有扩展名是个极大的优势。
我有专门一篇举例分析: 谈一个应该摒弃的历史习惯:不给文件加扩展名?
不过,这个问题的提问者别用“屎山”这么难堪的词,给不给文件安排/设计扩展名,跟屎不屎山的根本没关系。
从用户体验上来说。没有后缀名,理论上计算机也能知道这个文件可能是什么类型,但它需要先运行下才能知道。
如果有后缀名,在运行前就可以知道这是个什么类型的文件。
而且也有同个文件可以使用多种打开方式的情况存在,如果没有后缀名,还得定义一个默认打开方式,但这样操作不也是相当于加了个固定的“后缀名”。
问题错误,Linux程序一般也有扩展名。
至于你说的bin文件夹里的那些没扩展名的,那种其实相当于把扩展名当做文件夹名了。
另外,Windows的扩展名,嗯。。。一个dll文件可以是可执行文件,可以是几张图,甚至可以是几行文本
[收藏本文] 【下载本文】
   设计艺术 最新文章
有哪些对你很有冲击力的设计?
「英语流利说」的使用体验如何?
为什么设计院出的图纸一堆错误?
保时捷中国总裁首度回应「米时捷」:或许好
为什么很多JRPG游戏战斗中可操控角色一般是
设计师都觉得宋体很难看吗?
有哪些看着像 PS 过的照片,实际却没有?
为什么galgame普遍使用自研引擎而不是unity
“角色也有自己的生活”是什么时候开始成为
写代码用哪种字体看起来最舒适?
上一篇文章      下一篇文章      查看所有文章
加:2024-02-13 23:39:13  更:2024-02-13 23:41:00 
 
 
股票涨跌实时统计 涨停板选股 分时图选股 跌停板选股 K线图选股 成交量选股 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事
网站联系: qq:121756557 email:121756557@qq.com  天天财汇