The command line is a powerful tool for interacting with your Linux system. As a Linux user, knowing how to navigate the file system and get information about your current location is essential. The pwd (print working directory) and cd (change directory) commands allow you to orient yourself and move through folders and directories smoothly.
In this comprehensive guide, we will cover everything you need to know about using Bash commands to get the current directory in Linux.
An Overview of Directories in Linux
Before diving into the commands, let‘s review some basics about the Linux directory structure:
- Linux organizes the file system in a hierarchical tree of directories starting from the root directory (
/) - Directories contain other files and folders, allowing a logical grouping of content
- The full path from the root directory to any location in the system is called an absolute path
- Your current working directory is where you currently are in the system when working in the terminal
Knowing the current directory is vital so you can specify file paths and navigate properly.
Here is a visual overview of some key Linux directories:
/ (root directory)
├── bin (essential binary files)
├── etc (system configuration files)
├── home (user home folders)
│ └── john (example user folder)
├── usr (user programs and files)
├── var (variable data files)
└── tmp (temporary files)
Now let‘s look at how to print and change directories using Bash.
Printing the Current Working Directory with pwd
The simplest way to output your current working directory is by using the pwd (print working directory) command.
pwd will return the full absolute path of the directory you are currently in. For example:
user@linux$ pwd
/home/user
Some key notes about pwd:
- Works in any location to show your present working directory
- Does not change or move you to a new directory, only prints the path
- The path returned always starts from the root directory (
/)
Let‘s see some examples of using pwd as we navigate the file system:
user@linux$ pwd
/home/user
user@linux$ cd Documents/
user@linux$ pwd
/home/user/Documents
user@linux$ cd ../Work
user@linux$ pwd
/home/user/Work
As you can see, pwd simply reports our location every time it is called.
Now let‘s look at how we actually change directories.
Changing Directories with cd
While pwd shows you the current working directory, you can use the cd command to navigate into a new folder or directory.
The cd syntax looks like:
cd [folder]
For example, to enter the Documents folder:
cd Documents
The path can be either a full absolute path or a relative path based on your current position.
Here is an example sequence moving through some directories:
user@linux$ pwd
/home/user
user@linux$ cd Documents/
user@linux$ pwd
/home/user/Documents
user@linux$ cd ../Work/Projects
user@linux$ pwd
/home/user/Work/Projects
Some key notes about cd:
- Actually changes the current working directory
- The new path can be absolute or relative
cd ..moves one level up the directory tree- No arguments,
cd, returns you to home folder
That covers the basics of navigating with cd. Next we‘ll cover some more advanced uses.
Advanced Usage of cd
The cd command has some convenient features that make directory changes even more flexible.
For example, you can return to your home directory without specifying the full path:
user@linux$ pwd
/var/log
user@linux$ cd
user@linux$ pwd
/home/user
Use - to switch back to your previous directory:
user@linux$ pwd
/home/user
user@linux$ cd /var/log
user@linux$ pwd
/var/log
user@linux$ cd -
user@linux$ pwd
/home/user
You can also use relative paths based on the current location without knowing the full absolute path:
user@linux$ pwd
/var/log/apache
user@linux$ cd ../../etc
user@linux$ pwd
/etc
And combine cd with shell expansions like ~ (home) and . (current) for concise shortcuts:
user@linux$ pwd
/var/www/html
user@linux$ cd ~
user@linux$ pwd
/home/user
user@linux$ cd ~/Documents/..
user@linux$ pwd
/home/user
As you can see cd is very flexible for changing locations in your Linux file system smoothly.
Displaying All Sub-Directories with ls
Another tool that complements pwd and cd is the ls command.
While not strictly about showing your current directory, ls allows you to view contents of the current or any specified directory:
user@linux$ pwd
/home/user
user@linux$ ls
Documents Downloads Music Pictures Videos
ls displays files and sub-directories contained in the location.
Some useful options:
ls -l– long listing with detailsls /path– show contents of another directoryls -R– recursive list including sub-folder contents
You can combine ls with wildcards and pipes to filter or search:
user@linux$ ls /etc/*conf* | less
Using ls assists with orienting yourself when moving between directories.
Now that you have a solid understanding of directory navigation, let‘s cover some best practices.
Best Practices When Working with Directories
Here are some tips for working smoothly with pwd, cd, and directories in Linux:
- Use
pwdoften to confirm where you are before running commands - Go back to home folder with plain
cdbefore starting a new task - Use relative paths with
cdand..to move around more efficiently - Combine
cd -to toggle between two directories quickly - Take advantage of tab-completion after typing initial directory name characters
- Use
ls -Rwhen completely lost to see the tree of where you are - Script long procedures that require many
cdsteps to save repetitive work
If you follow those simple practices, you‘ll avoid confusion and reduce mistakes when working on the Linux command line.
Conclusion
Understanding your current working directory is essential proficiency for any Linux user working on the command line interface.
The pwd command prints your present location absolutely, while cd allows smooth navigation between folders and directories in the file system tree.
By mastering the effective use of pwd and cd, along with ls for displaying directory contents, traversing the Linux directories becomes second-nature.
Navigating files and folders is one of the first fundamental skills to learn on Linux. Hopefully this guide has given you a firm grounding through clear examples and explanations of the Bash commands for getting and changing the current working directory.
The power of the Linux terminal comes from combining many basic building block commands like these. With this foundation you are now equipped to continue your journey mastering the Linux command line.


