CD (command) - How IT Works

How It Works

cd is frequently included built directly into the command line interpreter. This is the case in most of the Unix shells (Bourne shell, tcsh, bash, etc.), cmd.exe and Windows PowerShell on Windows and COMMAND.COM on DOS.

Command line shells on Windows usually use the Windows API to change the current working directory, whereas on Unix systems cd calls the chdir POSIX C function. This means that when the command is executed, no new process is created to migrate to the other directory as is the case with other commands such as ls. Instead, the shell itself executes this command. This is because, when a new process is created, child process inherits the directory in which the parent process was created. If the cd command inherits the parent process' directory, then the objective of the command cd will never be achieved.

Unlike the Windows API or POSIX C function, neither the Java programming language nor the Java Virtual Machine supports chdir directly; a change request remained open for over a decade while the team responsible for Java considered the alternatives, though by 2008 the request was denied after only limited support was introduced (affecting first java.lang.Runtime and later, java.lang.ProcessBuilder ).

Windows PowerShell, Microsoft's object-oriented command line shell and scripting language executes the cd command (cmdlet) within the shell's process. However, since PowerShell is based on the .NET Framework and has a different architecture than previous shells, all of PowerShell's cmdlets like ls, rm etc. run in the shell's process. Of course, this is not true for legacy commands which still run in a separate process.

Read more about this topic:  Cd (command)

Famous quotes containing the word works:

    They that go down to the sea in ships, that do business in great waters, these see the works of the Lord and his wonders in the deep.
    Bible: Hebrew Psalms 107:23-24.