Skip to main content

Command Palette

Search for a command to run...

What Does ./ Mean in Linux

Updated
6 min read

When you start working with Linux, you might often see the term ./ in commands or scripts. You might wonder, "What does ./ mean in Linux?" Understanding this simple notation is key to navigating and using the Linux command line effectively. In this article, I’ll explain what ./ means, why it’s important, and how you can use it safely when running programs or scripts.

You’ll learn how ./ helps Linux know exactly where to find the file you want to run. This is especially useful when you want to execute a program or script that’s in your current directory. By the end, you’ll feel more confident using ./ in your Linux commands and avoid common mistakes that beginners make.

What Does ./ Mean in Linux?

In Linux, ./ is a relative path that points to the current directory. The dot (.) represents the directory you are currently in, and the slash (/) separates directory names in a path. So, when you write ./filename, you are telling Linux to look for filename in the current directory.

This is important because Linux does not automatically look in the current directory when you run a command. Instead, it searches the directories listed in the PATH environment variable. If your program or script is not in one of those directories, Linux won’t find it unless you specify the path explicitly.

Why Use ./?

  • Explicit location: It tells Linux exactly where to find the file.
  • Security: Prevents accidentally running a program with the same name from another directory.
  • Convenience: Allows you to run scripts or executables in your current folder without moving them.

For example, if you have a script named myscript.sh in your current directory, typing myscript.sh alone might not work. But typing ./myscript.sh tells Linux to run the script right here.

How Linux Finds and Runs Programs

Linux uses the PATH environment variable to find programs you want to run. This variable contains a list of directories separated by colons (:). When you type a command, Linux searches these directories in order.

If the program is not in any of these directories, Linux will say "command not found." This is why you need to use ./ to run programs in your current directory, which is usually not included in PATH for security reasons.

Example of PATH

You can see your current PATH by typing:

echo $PATH

Typical output might be:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Notice that . (the current directory) is not listed here. This means Linux won’t look in your current folder unless you tell it to.

Running Scripts and Executables with ./

When you create a script or compile a program, it usually ends up in your current directory. To run it, you need to use ./ followed by the filename.

Steps to Run a Script Using ./

  1. Make the script executable
    Use the chmod command to give execute permission:

    chmod +x myscript.sh
    
  2. Run the script
    Use ./ to run it:

    ./myscript.sh
    

Without the execute permission, Linux won’t run the script even if you use ./.

Running Compiled Programs

If you compile a C program named hello, you run it like this:

gcc hello.c -o hello
./hello

Here, ./hello tells Linux to run the hello executable in the current directory.

Why Not Just Add . to PATH?

Some users try to add the current directory (.) to their PATH to avoid typing ./. While this might seem convenient, it’s generally discouraged for security reasons.

Risks of Adding . to PATH

  • Accidental execution: You might run a malicious script by mistake if it has the same name as a common command.
  • Security vulnerabilities: Attackers can place harmful scripts in directories you visit, and your shell might run them unintentionally.

If you still want to add . to your PATH, it’s safer to add it at the end, not the beginning, so Linux searches system directories first.

export PATH=$PATH:.

But the best practice is to keep . out of PATH and use ./ explicitly.

Using ./ in Different Contexts

The ./ notation is not limited to running scripts or executables. It can be used in other commands to specify files or directories in the current folder.

Examples

  • Copy a file in the current directory

    cp ./file.txt /backup/
    
  • List a file with ls

    ls ./myfolder
    
  • Run a Python script

    ./script.py
    

In all these cases, ./ clarifies that the file or folder is in the current directory.

Common Mistakes When Using ./

Beginners often make mistakes with ./. Here are some common ones and how to avoid them:

  • Forgetting to make the file executable
    Without execute permission, ./script.sh will give a permission denied error.

  • Typing ./ when not needed
    If the program is in your PATH, you don’t need ./. For example, ls works without ./.

  • Confusing ./ with ../
    ../ means the parent directory, not the current one.

  • Using ./ with directories incorrectly
    You can use ./ with directories, but you can’t run a directory as a program.

Summary Table: ./ vs Other Path Notations

NotationMeaningExample Usage
./Current directory./script.sh
../Parent directory../file.txt
/Root directory/etc/passwd
~/Home directory~/Documents
No prefixSearch in PATH directoriesls, grep

Conclusion

Now you know that ./ in Linux means "look in the current directory." It’s a simple but powerful way to tell the system exactly where to find your files or programs. Using ./ helps you run scripts and executables safely without changing your PATH or risking security issues.

Whenever you create or download a script, remember to make it executable and run it with ./. This habit will make your Linux experience smoother and safer. So next time you see ./ in a command, you’ll know exactly what it means and why it’s there.


FAQs

What does ./ mean in Linux?

./ means the current directory in Linux. It tells the system to look for a file or program in the folder you are currently working in.

Why do I need to use ./ to run a script?

Linux doesn’t search the current directory by default for security reasons. Using ./ explicitly tells Linux to run the script from your current folder.

Can I add . to my PATH to avoid using ./?

You can, but it’s not recommended because it can cause security risks by running unintended programs from the current directory.

What happens if I forget to make a script executable?

If the script doesn’t have execute permission, running ./script.sh will give a "permission denied" error.

Is ./ only used for running programs?

No, ./ can be used anytime you want to specify a file or directory in your current folder, such as copying or listing files.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts