![为什么UNIX中的“ls”和DOS中的“dir”有不同的名称?](https://linux22.com/image/1294668/%E4%B8%BA%E4%BB%80%E4%B9%88UNIX%E4%B8%AD%E7%9A%84%E2%80%9Cls%E2%80%9D%E5%92%8CDOS%E4%B8%AD%E7%9A%84%E2%80%9Cdir%E2%80%9D%E6%9C%89%E4%B8%8D%E5%90%8C%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
为什么它们对列出目录的相同命令使用不同的名字?当然,它们可以相互通信并同意一个通用名称,例如cd
unix 和 dos 都使用相同的名称。
这种使用不同名称的决定给开发人员和用户带来了很多麻烦,也增加了两个系统之间的不兼容性。他们是故意这样做的吗?那么“cd”怎么会是一样的呢?
答案1
请注意,Unix 是先出现的(您的问题的措辞看起来好像恰恰相反)。
DOS 继承dir
了控制/管理,它来自虚拟机管理系统。/
引入选项的字符(在引入目录时,迫使 DOS 采用不同的字符作为目录分隔符)具有相同的起源。
为什么 VMS 设计者不遵循 Unix?因为在设计 VMS 时,Unix 还很年轻,还没有成为后来的事实标准(部分原因是POSIX标准化工作)。VMS 和 Unix 在许多方面都有不同的设计;我怀疑是否有人故意使它们不兼容。CP/M 和 DOS,以及早期版本的 Windows 都遵循 VMS,因为当时没有令人信服的理由选择 Unix 而不是 VMS;Windows NT 首席设计师之前曾从事 VMS 工作,这进一步影响了 Windows 向 VMS 而非 Unix 的转变。后来,当 Unix 成为服务器上的标准操作系统时,Windows 已经根深蒂固地成为与众不同的,无法改变。尽管如此,Windows 确实获得了一定程度的 POSIX 兼容性(有时通过第三方软件);例如,内部 API 确实接受/
路径分隔符。
答案2
这些命令之所以不同,是因为它们几乎是并行开发的,没有交互。DOS 命令通常是 QDOS 的衍生品,而 QDOS 本身又衍生自 CP/M(Gary Kildall 的微型计算机控制程序),这几乎是英特尔微处理器的第一个操作系统,最初是为英特尔的 8080 CPU 设计的,并且在很大程度上是为了让 PL/M 能够控制软盘驱动器而编写的。这一切都发生在 20 世纪 70 年代初。
Linux 很大程度上是 Unix 的衍生品,许多命令具有相同的名称,执行相同(或非常非常相似的功能)。Unix 于 1969 年开始开发,因此许多初始命令命名与 CP/M 同时进行。
CP/M 针对的是个人计算机,而 Unix 针对的是小型计算机,通常用于企业实验室或大学研究中心,两者之间实际上并无合作。
现在,它基本上保持原样以确保差异化,双方都不愿意承认对方的命名惯例更优越。
不过,两个系统都允许命令别名。