控制台命令 cd 是各种通配符吗?

Ang*_*ris 1 command-line

我想知道在开发一些应用程序时(虽然这不是一个开发问题)cd在 Windows 中使用的命令是否是通配符或跨平台命令。我用 Unix/Linux 和 MAC OS X 的命令查看了表,结果发现它似乎在那里。我不是多操作系统用户,所以我问是否有不同操作系统经验的人可以告诉我:

  1. 如果此命令确实存在并且有效
  2. 如果它具有相同的功能(更改目录)
  3. 如果在使用过程中有任何问题
  4. 如果在任何操作系统中都有另一个命令行命令以更好/更精细/更频繁使用的方​​式执行相同的操作。

提前致谢!

(PSI 不是 100% 确定这个问题属于这个站点还是其他一些 stackexchange 站点......)

(PPS 任何帮助标记这将不胜感激!)

Nic*_*ton 5

一个的想法cd更改目录命令的发明为1969年的Unix的一部分,它的简洁,最喜欢像其他的Unix命令lsrmsed等等。它还与作为 Unix 的一部分发明的树结构文件系统相匹配,其中甚至设备都是/dev. 很容易忘记,在 Unix 之前,没有多少操作系统具有树结构的文件系统,其中包含普通用户可以轻松创建的目录。通常,您(充其量)只是在某处获得了一堆文件和像 IEBGENER 这样的奇怪的 IBM 实用程序来操作它。

什么cd是改变当前进程的当前目录,在这种情况下,shell,它影响操作系统将如何解释相关文件名,即那些不是从/文件系统的根目录完全限定的文件名。当前目录是从父进程继承到子进程的。

cdUnix 或 Linux 系统与 Windows 系统上的语义有一些很大的不同。一是,cd没有操作数该怎么办?在 Unix 或 Linux 上,它会将您带到主目录。在 Windows 上,cmd.exe'scd只是报告当前目录。此外,Windows 不是单根的,它有驱动器号,你可以在每个驱动器上都有一个当前目录,尽管幕后实现是微软把它扔进了应用程序空间:每个进程都带有一些隐藏的环境具有奇怪名称的变量,例如=C:应用程序负责保持最新状态。

有些cd命令比其他命令更好,但这可能是一个品味问题。在C shell中介绍的想法CDPATH是工程类的PATH变量做,但发现目录,而不是可执行文件。C shell中还引入了目录栈让您pushdpopd当前目录。在编写我自己的 C shell 时,我复制了所有这些,添加了一个选项让用户决定cd在没有操作数的情况下应该做什么,以及一个客户建议的功能,如果你输入超过 2 个点,cd ....它应该上升 n-1 级.