pwd Linux command prints the current working directory path, starting from the root (
/). Use the
pwd command to find your way in the Linux file system structure maze or to pass the working directory in a Bash script.
In this tutorial, you will learn to use the
- A system running Linux
- Access to the terminal window (Ctrl+Alt+T)
- A text editor of your choice
pwd command takes the following syntax:
The available options are discussed in the following section.
pwd command has two exit statuses:
- 0. Success.
- Non-zero. Failure.
The options provide additional functionality to the command. The
pwd command accepts the following options:
|Prints the path to the current directory. All the components are directory names, and symbolic links are resolved.|
|Outputs the program version.|
|Displays the help message.|
There are several ways to use the
pwd command. The examples below explain common use cases for the
Example 1: Get Working Directory Path
pwd command without any options outputs the full path to the current working directory.
The command outputs the current working directory absolute path. In this case, the home directory path.
Note: An absolute pathname starts with the
/ character, which marks the root of the file system tree.
However, if you followed a symlink to the current directory, running
pwd prints the symlink location and not its destination.
In the following example, we created a symbolic link to the current directory. Following the link and running the
pwd command displays the symbolic link in the path:
Example 2: Using the -P Option
-P option instructs
pwd to print the physical working directory and avoids listing symbolic links. Therefore, the command prints the absolute path to the current working directory.
Even though a symlink was used to change the directory, the
pwd command only prints the actual name of the working directory.
Example 3: Using the -L Option
-L option instructs
pwd to print the working directory path, including any symlinks. In the following example, we used a symlink to navigate to a directory and ran
The output lists the path with the symbolic link.
Example 4: Print $PWD Variable Contents
$PWD environment variable stores the current directory path. Print the variable contents by running:
The command outputs the current working directory, including any symlinks, stored in the
Example 5: Personalize pwd Output
pwd command output by storing its value in a variable and adding a message using the echo command.
The following example is a script where
pwd's value is stored in the
$p variable and includes an output message.
Follow the instructions below:
1. Open the terminal and create the script:
2. Add the following lines to the script:
#!/bin/bash p=$(pwd) echo "You are currently in: $p"
3. Save the script and exit
vi with the following command:
4. Change file permissions to make the script executable:
chmod +x directory.sh
5. Run the script:
The script outputs the current working directory with a personalized message.
Example 6: Check pwd Version
pwd command is a built-in shell command (
pwd) and an actual binary (
/bin/pwd). The shell version may differ from the binary version.
pwd version is installed by running:
The command outputs the binary
pwd version on your system.
Note: Use the
type command to get more information about the
pwd command. Run
type -a pwd to get the locations of all executables containing the
pwd keyword - both the shell and binary versions.
Example 7: See Previous Working Directory
$OLDPWD variable stores the previous working directory path. Check your previous location in the filesystem by running:
The command outputs the previous working directory.
Example 8: See Help File
--help option to see the
pwd command help file and the available options:
The output is a brief help file with a list of available options.
Example 9: Use pwd in Scripting
In this example, we created a bash case statement that uses
pwd to output the current or previous working directory, depending on the option selected. Follow the steps below:
1. Create a script using a text editor such as vi/vim:
Note: Check out how to install vi/vim on Ubuntu.
2. Enter the lines below:
#!/bin/bash echo "I need to see:" echo "1 - My current physical directory path." echo "2 - My current directory path, including symlinks." echo "3 - My previous directory" read directory case $directory in 1) echo "Your current physical location is: $(pwd -P)";; 2) echo "Your current directory, including symlinks, is: $(pwd -L)";; 3) echo "You were previously in: $OLDPWD";; esac
3. Save and quit vi by running:
4. Make the script executable with
chmod +x directory.sh
5. Execute the script and choose an option:
The script utilizes a case statement to offer three options and prints a corresponding output based on the answer.
6. Change the directory using a symlink, execute the script again and compare the outputs:
The output shows the physical location, even though we used a symlink to change the directory.
7. Test the remaining options as well to see the result:
Example 10: Set up an Alias for pwd
Create an alias that includes the
-P option to prevent getting symlinks when running
pwd. That way,
pwd always shows the path to the directory you're in, regardless of how you got there.
In the following example, the alias includes the
-P option and we have added it to the .bashrc file to make the system remember the alias after a system reboot.
alias pwd='pwd -P'; echo "alias pwd='pwd -P'" >> ~/.bashrc
The output displays the physical location, although we followed a symlink to the current path.
This tutorial showed how to use the
pwd command in Linux to check your location quickly.
If you are interested in bash, see our tutorial for bash functions and how to use them. Alternatively, we recommend delving further into Linux commands in our list of all important Linux commands in one place.