Force Linux / UNIX bash shell to correct spelling of a directory name

Posted on in Categories , , , , , , , last updated July 7, 2007

Q. There is a way to cd a particular directory even if you spelled incorrectly on the command line. The command was added to my shell startup file. After formatting my hard disk, I lost my original file. Can you tell me the shell option or command that will automatically correct errors in the spelling of a directory name in a cd command?

A. There is a bash shell variable called cdspell If set, minor errors in the spelling of a directory component in a cd command will be corrected. The errors checked for are transposed characters, a missing character, and one character too many. If a correction is found, the corrected file name is printed, and the command proceeds. This option
is only used by interactive shells.

To toggle the values of cdspell variables controlling optional behavior use shopt command as follows:
$ shopt -s cdspell
$ cd /etx
$ pwd

Add above command to your .bash_profile file.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

2 comment

  1. csh/tcsh users:

    To enable spelling correction, add one of the following to ~/.tcshrc

    * set correct = cmd
    * set correct = all

    The first option causes spelling correction to be applied for commands only
    The second tries to correct all entries on the command line

Leave a Comment