How to navigate inside a Directory/Folder without using CD command in Linux ?

As we all know that we can’t navigate inside a directory in Linux without CD command.

Yes that’s true but we have the Linux built-in command called shopt that help us to solve this issue.

If you are looking for an alternative solution then i would suggest you to go with bd command that allow us to Quickly Go Back To A Specific Parent Directory.

shopt is a shell builtin command to set and unset various bash shell options, which is installed. So, we no need to install it again.

And we can navigate inside a directory without CD command after enabling this option.

Let us see how to do this in this article. This is a small tweak but it’s very useful for newbies who all are moving from Windows to Linux.This won’t be much useful for Linux administrator because we are very much used to CD command for our day to day tasks.

If you are trying to navigate a directory/folder in Linux without cd command, you will be getting the following error message. This is common in Linux.

$ Documents/
bash: Documents/: Is a directory

To achieve this, we need to append the following values in a user .bashrc file.

What is .bashrc File?

The “.bashrc” file is a shell script which runs every time a user opens a new shell in interactive mode.

You can add any command in that file that you want to type at the command prompt.

The .bashrc file itself contains a series of configurations for the terminal session. This includes setting up or enabling: colouring, completion, the shell history, command aliases and more.

$ vi ~/.bashrc

shopt -s autocd

Run the following command to make the changes to take effect.

$ source ~/.bashrc

We have done all the configuration. Simply do the testing on this to confirm whether this is working or not.

$ Documents/
cd -- Documents/
$ daygeek/
cd -- daygeek/

$ /home/daygeek/Documents/daygeek
cd -- /home/daygeek/Documents/daygeek

$ pwd

Yes, it’s working fine as expected.

However, it’s working fine in fish shell without making any changes in the .bashrc file.

If you would like to perform this action as temporary then use the following commands (set/unset). This will go away when you reboot the system.

# shopt -s autocd

# shopt | grep autocd
autocd         	on

# shopt -u autocd

# shopt | grep autocd
autocd         	off

shopt command is offering so many other options and if you want to verify those, run the following command.

$ shopt
autocd         	on
assoc_expand_once	off
cdable_vars    	off
cdspell        	on
checkhash      	off
checkjobs      	off
checkwinsize   	on
cmdhist        	on
compat31       	off
compat32       	off
compat40       	off
compat41       	off
compat42       	off
compat43       	off
compat44       	off
complete_fullquote	on
direxpand      	off
dirspell       	off
dotglob        	off
execfail       	off
expand_aliases 	on
extdebug       	off
extglob        	off
extquote       	on
failglob       	off
force_fignore  	on
globasciiranges	on
globstar       	off
gnu_errfmt     	off
histappend     	on
histreedit     	off
histverify     	off
hostcomplete   	on
huponexit      	off
inherit_errexit	off
interactive_comments	on
lastpipe       	off
lithist        	off
localvar_inherit	off
localvar_unset 	off
login_shell    	off
mailwarn       	off
no_empty_cmd_completion	off
nocaseglob     	off
nocasematch    	off
nullglob       	off
progcomp       	on
progcomp_alias 	off
promptvars     	on
restricted_shell	off
shift_verbose  	off
sourcepath     	on
xpg_echo       	off

I had found few other utilities, those will help us to navigate to a directory faster in Linux compared to cd command.

Those are pushd, popd, up shell script and bd utility. We will cover these topics in the upcoming articles.

Thanks for visiting our site.

About Magesh Maruthamuthu

Love to play with all Linux distribution

View all posts by Magesh Maruthamuthu

Leave a Reply

Your email address will not be published. Required fields are marked *