It&#x27;s impossible because it simply calls chdir(2).  The &quot;current directory&quot; is a property of a process; having it built-in means it changes the directory of the current process.  If it was a separate executable, you&#x27;d change the directory in a separate child process for that executable, and the current directory of the shell would be unchanged, making it entirely useless.