Windows的命名习惯可以说是从DOS与FAT时代的强制8.3文件名开始的,那为啥Linux有.so跟.o却不习惯于对executable 加上.exe的后缀呢?
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。
离线
上古时代...
开源/Linux大众化,从驿窗开始~
离线
因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。
但是shell可以做自动搜索功能啊
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
zsrkmyn 说:因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。
但是shell可以做自动搜索功能啊
那个时代的 shell 嘛……
另外就是,是否为可执行文件是由 x 权限位来决定的,怎么执行是由内核根据文件内容决定的(后来也支持文件名匹配)。你一个命令,一开始用 C 写所以叫 xxx.exe,后来换 Perl 写就成了 xxx.pl,换 Python 就成了 xxx.py——你让 shell 去识别所有这些后缀?还得定义个优先级。别忘了,shell 不止一个。
至于 .so 嘛,那是由 ld 识别的,别的东西认不认它不在乎(所以 Mac 们有 .dylib)。所以我们还有 .rlib、.ko、.cmx、.cmxa、.cmxs 这些变种。(Windows 那边还有个 .pyd。)
在线
因为 x位才是用来标记executable的吧,既然已经有x位了那么就没有必要再用别的来表明一个文件是可执行的
ecmascript是世界上最好的语言
离线
因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。
我觉得这些缩写很合理啊。这么高频的命令每次打list、remove、move才会疯掉吧...就算现在打字很方便了不是还有很多人(甚至还有一些发行版)alias了ll='ls -l'吗
离线
Linux是沿袭Unix,而Unix是上世纪70年代开始的事情,比DOS其实还略早,比MS-DOS更早。猜测那时候多半还没有后缀名的习惯。
今天*nix下很多人习惯认为.py、.sh与二进制程序都是同等级别的可执行程序,用x位标记,.exe定位有点不伦不类,硬要给binary加.exe除了让他人觉得奇怪,也没什么问题。
离线
其实这个问题可以这样表述:Windows世界是怎么形成了有.exe却没有.o的命名习惯?
离线
话说windows下也不是只有exe一种后缀是可执行文件呀
.msi 也是二进制可执行文件, 还有.bat .cmd .vbs等脚本可执行文件..
跟*nix世界其实在本质上没有区别,种类的多少也只是因为一个开源一个封闭
最近编辑记录 matrikslee (2019-08-23 00:47:08)
离线
i dont know, i dont want to know
离线
i dont know, i dont want to know
那你闭嘴。
反社会,精神极其不稳定,随时可能炸碎身边所有人
离线
因爲 FAT 裡 directory entry 的 extension 事三個 bytes
离线
zsrkmyn 说:因为 .exe 多了 4 个字符,每次敲命令要多敲 4 次键盘。况且在上古时代敲键盘是很费劲的事情,所以才有了诸如 ls rm mv 这样奇葩的缩写,更别说加 .exe 了。
我觉得这些缩写很合理啊。这么高频的命令每次打list、remove、move才会疯掉吧...就算现在打字很方便了不是还有很多人(甚至还有一些发行版)alias了ll='ls -l'吗
让我如何这么干。
$ sudo mv /etc/environment ~/templates
$ UseAdministratorAuthorization MoveFileToOtherPath InputFilePath /etc/ OutPutFilePath /home/user/templates
离线
因为.EXE是后来的!
离线