Home Learn Linux 10 Linux commands for navigating the file system

10 Linux commands for navigating the file system

Navigating the Linux file system is a fundamental skill for users. This guide introduces 10 essential commands, from basic file operations like 'ls' and 'cd' to advanced manipulations with 'find' and 'grep'. Enhance your command line proficiency and manage files and directories with ease.

by Arun Kumar
10 linux commands to navigate the file system

In the dynamic and ever-evolving world of Linux, mastering the command line is akin to unlocking a treasure trove of capabilities. This article delves into the essentials of navigating the Linux file system, an adventure that begins at the root and extends into an intricate network of directories and files.

We explore not just the fundamental commands like ls, cd, and pwd, but also touch upon more complex functionalities such as file creation, movement, and searching. Understanding these commands is crucial for anyone looking to efficiently maneuver through the Linux environment, be it for system administration, programming, or general usage.

Understanding the file structure

In Linux, the file structure is designed as a hierarchical directory tree, which can be a bit complex but offers great flexibility and control. Here’s a more technical look at how this structure is organized:

Root directory

  • Root (/): The beginning of the file system. Everything on your Linux system is located under the root directory, even if they are stored on different physical or virtual devices. Think of it as the trunk of the tree, from which all directories branch out.

Directory types

  • Home (/home): Each user has a directory in /home. For example, /home/john is John’s home directory. This is where personal files and user-specific settings are stored.
  • Binaries (/bin and /usr/bin): These directories contain executable binaries, essential commands that the system, and the users, can run. /bin includes fundamental commands like ls or pwd, while /usr/bin contains applications and scripts for users.
  • System configuration (/etc): This is where system-wide configuration files are stored. Unlike personal configuration files in your home directory, changes here affect all users.
  • Device files (/dev): Linux treats devices like files, and /dev contains these device files, including your hard drive, USB, or any other hardware device connected to the computer.
  • Variable files (/var): A place for files that are expected to change in size and content as the system is running, like logs, spool files, and cached data.
  • Library files (/lib and /usr/lib): Shared library files and kernel modules are stored here. Libraries are code that can be used by multiple programs.

Special directories

  • Temporary Files (/tmp): A temporary storage area for files created by system processes. It’s cleaned up at reboot, so it’s not a place for permanent storage.
  • System Information (/proc): This is a virtual filesystem that provides a mechanism to access kernel information and running process details. It’s not real files but a representation of the system memory.

Symbolic links

  • /bin, /sbin, /lib to /usr: Recent Linux distributions have started merging /bin, /sbin, and /lib into /usr to consolidate system binaries and libraries. This is done using symbolic links, where, for instance, /bin will be a link to /usr/bin.

Understanding this file structure is key to mastering Linux. Each directory has a purpose and understanding their roles helps in navigating and managing the system efficiently.

10 Linux commands for navigating the file system

1. pwd – Print Working Directory

This command displays the path of the current working directory you’re in. It’s like asking, “Where am I in the file system?”

Usage: This is your “where am I?” command.



Example Output:


I use pwd all the time, especially when I’ve wandered deep into directories and need to find my way back.

2. ls – List Directory Contents

It lists all files and directories in the current directory. By default, it doesn’t show hidden files (those starting with .). You can use options like -l for a detailed list and -a to show all files, including hidden ones.

Usage: To see what’s inside a directory.



Example Output:

Documents  Downloads  Music  Pictures  Videos

Tip: Use ls -l for a detailed view, and ls -a to include hidden files (those starting with a .).

3. cd – Change Directory

Used to move between directories. For example, cd Documents moves you into the Documents directory. cd .. takes you up one level in the directory hierarchy.

Usage: This is how you move around.


 cd Documents

After this command, you’ll be in the Documents directory. Remember, cd .. takes you one level up.

4. mkdir – Make Directory

This command creates a new directory. For instance, mkdir Music creates a new directory named Music.

Usage: For when you need a new folder.


 mkdir NewFolder

This command creates a new directory named NewFolder. It’s my go-to for keeping files organized.

5. rmdir – Remove Directory

It removes an empty directory. It’s important to note that rmdir only works on empty directories. If the directory contains files or other directories, you’ll need a different command.

Usage: To delete an empty directory.


 rmdir OldFolder

Note: It only works on empty directories. I use rmdir sparingly, as it doesn’t handle files inside the directory.

6. touch – Create Empty File

Primarily used to create a new empty file. For example, touch example.txt creates an empty file named example.txt. It can also be used to update the timestamps on existing files.

Usage: For quickly creating a new file.


touch newfile.txt

This command creates an empty file named newfile.txt. It’s super handy for scriptwriting and programming.

7. rm – Remove Files or Directories

This command is used to delete files and directories. rm file.txt would delete the file named file.txt. Use it with caution, especially when using the -r option for recursive deletion, as it can delete directories and their contents permanently.

Usage: To delete files or directories.


rm file.txt

Be careful with rm -r for directories—it deletes everything without asking!

8. cp – Copy Files or Directories

It copies files and directories. For example, cp source.txt destination.txt copies the contents of source.txt into destination.txt. With directories, the -r option (recursive) is used to copy everything inside.

Usage: When you need duplicates.


 cp file.txt /path/to/destination

This copies file.txt to the specified destination. I always double-check the paths to avoid confusion.

9. mv – Move or Rename Files or Directories

Used for moving or renaming files and directories. For moving, mv file.txt /path/to/directory/ moves file.txt to the specified directory. For renaming, mv oldname.txt newname.txt changes the file’s name.

Usage: For relocating or renaming.


mv file.txt newfile.txt

This renames file.txt to newfile.txt. To move a file, specify the destination directory.

10. find – Search for Files

A powerful search command used to locate files and directories within the file system. For example, find / -name "example.txt" searches for a file named example.txt starting from the root directory.

Usage: When you need to find a file but forgot where it is.


find / -name "file.txt"

This searches the entire system for file.txt. I use find frequently because, well, I tend to forget where I put things.

Linux commands cheat sheet for file system navigation

This table serves as a quick reference guide to these essential Linux commands, helping you navigate and manage files and directories efficiently.

Command Description
pwd Displays the path of the current working directory.
ls Lists all files and directories in the current directory. Includes options for detailed or hidden files.
cd Changes the current directory to another directory.
mkdir Creates a new directory.
rmdir Removes an empty directory.
touch Creates a new empty file or updates the timestamps of an existing file.
rm Deletes files or directories. Use with caution.
cp Copies files or directories from one location to another.
mv Moves or renames files or directories.
find Searches for files or directories within the file system.

Frequently Asked Questions about Linux Commands

1. Can I undo a rm command?

Unfortunately, the rm command permanently deletes files, and there’s no straightforward ‘undo’ option in the Linux command line. It’s always good to double-check before executing rm, especially with the -r option. For critical data, consider using a backup solution or a trash-cli tool that mimics a recycle bin functionality.

2. How can I view the contents of a file in the terminal?

To view the contents of a file, you can use commands like cat, less, or more. For instance, cat filename.txt displays the entire content of the file, while less and more allow you to navigate through the file interactively.

3. Is there a way to move files without typing the full path?

Yes! If you’re moving files within the same directory, you can simply type mv oldfilename.ext newfilename.ext. For moving files to a directory up or down, you can use . and .. respectively. For example, mv file.txt ../ moves the file one directory up.

4. How do I know which directory I’m currently in?

The pwd (print working directory) command will tell you your current directory. It’s a quick way to confirm your location in the file system.

5. What is the difference between cp and mv?

cp copies the file or directory from one location to another, leaving the original intact. mv, on the other hand, moves the original file or directory to a new location, so it no longer exists in the original location. mv is also used to rename files and directories.

6. How do I find a file if I don’t know its exact name?

The find command can be very powerful here. You can use wildcards with it. For example, find / -name "*sample*" searches for any file that includes “sample” in its name, starting from the root directory.

7. Is there a command to see the size of a file or directory?

Yes, the du (disk usage) command is used for this. For example, du -sh filename shows the size of the file. For directories, du -sh directoryname gives you the total size of the directory.

8. Can mkdir create multiple directories at once?

Absolutely! You can create multiple directories in one command by listing them separated by spaces. For example, mkdir dir1 dir2 dir3 creates three directories: dir1, dir2, and dir3. You can also create nested directories using the -p option.


Knowing how to navigate the Linux file system is a crucial skill for anyone who works with this powerful operating system. From understanding the basic structure of the file hierarchy to knowing how to use each command, we’ve covered all the essentials that form the foundation of file system navigation and management.

Whether you’re a beginner trying to get started or an experienced user looking to brush up on your skills, these commands provide the necessary groundwork for a deeper understanding and greater control over your Linux experience. Armed with this knowledge, you’ll be well-prepared to explore the intricate world of Linux with confidence and proficiency.

You may also like

Leave a Comment



FOSS Linux is a leading resource for Linux enthusiasts and professionals alike. With a focus on providing the best Linux tutorials, open-source apps, news, and reviews written by team of expert authors. FOSS Linux is the go-to source for all things Linux.

Whether you’re a beginner or an experienced user, FOSS Linux has something for everyone.

Follow Us


©2016-2023 FOSS LINUX



“Linux” is the registered trademark by Linus Torvalds in the U.S. and other countries.