In fact, they both do the same thing, but chdir is a POSIX system call, and cd is a normal function used in a program, which in this case is a shell.
In practice, chdir is called by cd to make changes to the directory, since the program does not have kernel privileges to do this on its own.
Itamar katz
source share