diff --git a/sources/tech/20190315 How To Navigate Inside A Directory-Folder In Linux Without CD Command.md b/sources/tech/20190315 How To Navigate Inside A Directory-Folder In Linux Without CD Command.md new file mode 100644 index 0000000000..d0d21adeb8 --- /dev/null +++ b/sources/tech/20190315 How To Navigate Inside A Directory-Folder In Linux Without CD Command.md @@ -0,0 +1,169 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (How To Navigate Inside A Directory/Folder In Linux Without CD Command?) +[#]: via: (https://www.2daygeek.com/navigate-switch-directory-without-using-cd-command-in-linux/) +[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/) + +How To Navigate Inside A Directory/Folder In Linux Without CD Command? +====== + +As everybody 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. + +[shopt][1] is a shell builtin command to set and unset various bash shell options, which is installed so, we no need to install it again. + +Yes we can navigate inside a directory without CD command after enabling this option. + +We will show you, 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 is not useful for Linux administrator because we won’t navigate to the directory without CD command, as we had a good practices on this. + +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 the .bashrc File? + +The “.bashrc” file is a shell script which is run 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. Simple do the testing on this to confirm whether this working or not. + +``` +$ Documents/ +cd -- Documents/ + +$ daygeek/ +cd -- daygeek/ + +$ /home/daygeek/Documents/daygeek +cd -- /home/daygeek/Documents/daygeek + +$ pwd +/home/daygeek/Documents/daygeek +``` + +![][3] +Yes, it’s working fine as expected. + +However, it’s working fine in `fish shell` without making any changes in the `.bashrc` file. +![][4] + +If you would like to perform this action for temporarily 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, that are help us to navigate a directory faster in Linux compared with cd command. + +Those are pushd, popd, up shell script and bd utility. We will cover these topics in the upcoming articles. + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/navigate-switch-directory-without-using-cd-command-in-linux/ + +作者:[Magesh Maruthamuthu][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://www.2daygeek.com/author/magesh/ +[b]: https://github.com/lujun9972 +[1]: https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html +[2]: data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 +[3]: https://www.2daygeek.com/wp-content/uploads/2019/03/navigate-switch-directory-without-using-cd-command-in-linux-1.jpg +[4]: https://www.2daygeek.com/wp-content/uploads/2019/03/navigate-switch-directory-without-using-cd-command-in-linux-2.jpg