This is a basic post to show you what we can do with cd command to reduce your time spending at terminal by using alias, tips and some shortcuts. cd(Change Directory) is a basic command which is used to change your working directory from one to other. Here are some productivity tips and some less known tips to you people. Feel free to comment on this.
Example 1: Change working directory to /abc/xyz
pwd /home/surendra cd /abc/xyz pwd /abc/xyz
Example 2: Change directory from present working directory to /var/ftp to /var/ftp/pub using absolute path. Share Image
pwd /var/ftp cd /var/ftp/pub pwd /var/ftp/pub
Example 3: Change directory from present working directory /var/ftp to /var/ftp/pub using relative path. To understand below command we should know more about Absolute and Relative path.
pwd /var/ftp cd pub pwd /var/ftp/pub
Example 4: Change working directory to user’s home directory from anywhere in the directory structure.
pwd /etc/samba cd ~
Example 5: One more way to achive above us just cd command as shown below.
cd pwd /home/surendra
Example 6: Sometimes we want to change directory to the previous working directory and come back to where we are. We can use “cd -” which will take us to the previous working directory. This is vary much useful cd command.
cd –
Example 7: Change working directory to present working directory. This command is of no use because this will change the directory to present directory it’self.
cd .
Example 8: Change working directory to parent directory.
cd ..
Example 9: Change working directory to parents parent directory or two levels up in the directory structure.
cd ../..
Exampl 10: How about changing three levels up in the directory.
cd ../../..
And so on how many directory levels up you want to change that many double dots(..) separated by / you can use.
Example 11: I am in /var/ftp folder and I want to change the directory to /etc/samba with single command. How can I do that? Just mix what we learn, ie relative path and above “..” technique.
pwd /var/ftp cd ../../etc/samba pwd /etc/samba
Still did not get relative path and absolute path? You have to read relative vs absolute path difference.
cd command supports wildcards such as ?(for single character), * for multiple character and directory completion.
Example 12: Change the working directory to /var/ftp without mentioning ftp fully.
cd /var/ft?
This will change the directory to /var/ftp if there is no other directory name which starts with ft and have three characters.
Example 13: Change the working directory
cd /var/f*
This will change the directory to /var/ftp, if /var directory contain only one folder which starts with f letter.
Example 14: Change directory to /home/surendra/redhat/ubuntu without typing all the characters using <tab>
cd /h<tab>/s<tab>/r<tab>/u<tab>
Note: Press tab to complete directory name.
Example 15: We can use simple alias to reduce our time at terminal. Keep these alias in .bashrc(for bash shell) or .profile(for ksh shell) files in user’s home directories.
alias cd1=’cd ..’ alias cd2=’cd ../..’ alias cd3=’cd ../../..’ alias cd4=’cd ../../../..’ alias cd5=’cd ../../../../..’
We can even keep frequently executed cd commands and long path cd commands as alias so that we can reduce the time of typing them.
Example 16: We can even use function to create a new directories and change working directory to new directory with one command. We can use below function which should be kept in ~/.bashrc(for bash shell) and ~/.profile for each user
mdcd () { mkdir -p $1 && cd $1 }
Note: Save the .bashrc file once edited the source it otherwise we have to logout and login to take this effect.
Now we can use mdcd as command to create a directory and change to it.
Example 17: A function for changing the directory and listing the the content.
cdls () { cd $1 && ls }
Example 18: Use CDPATH built-in variable to store multiple directory structures so that we can directly change the director by just using name of sub directory you want to change.
For Oracle admins the main directory to work is /opt/oracle/oradba/oratemp
Now I set CDPATH to /opt/oracle/oradba/oratemp. From now on words you can just do cd oratemp and your cd command will directly take you to /opt/oracle/oradba/oratemp. Keep the below command in ~/.bashrc file and source it.
export CDPATH=/opt/oracle/oradba
Example 19: We can store multiple paths in CDPATH with : as separator. this is similar to PATH variable which stores location to binaries/executables.
export CDPATH=/opt/oracle/oradba:/var/fpt/pub/lead
The following examples are used in shell scripting to store changed directory locations into a stack for future uses.
Example 20: Use pushd command to change the directory and note these changes to a stack. This is similar to cd command.
pushd /var/ftp/pub
Example 21: To go to last working directory we can use popd, which will remove the directory entry from the stack
popd
Example 22: To list all the directories in the stack
dirs
Example 23: The shopt is an excellent command used to set shell options. This command will give you full control what options are set and not set. With this command we can make cd to correct any spelling mistakes in the directory structure.
shopt -s cdspell
After this if you try to change directory /var/ftp but typed wrong as /var/fdp this error is taken care once the above option is set.
cd /var/fdp pwd /var/ftp
Please share your thoughts on this.
Latest posts by Surendra Anne (see all)
- Docker: How to copy files to/from docker container - June 30, 2020
- Anisble: ERROR! unexpected parameter type in action:
Fix - June 29, 2020 - FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
- How to use ohai/chef-shell to get node attributes - July 19, 2018