Home Learn Linux Linux Directory Navigation: A Guide to Listing Files Efficiently

Linux Directory Navigation: A Guide to Listing Files Efficiently

We'll explore the various commands and techniques to list files in a directory in Linux, including options for sorting, filtering, and displaying additional file information.

by Divya Kiran Kumar
a guide to listing files in linux

I‘ve spent a fair share of my time exploring the vast world of the command-line interface. One of the basic yet essential tasks you’ll need to master is listing files in a directory. Linux offers a variety of commands and options to help you navigate through your files and directories efficiently. In this article, we’ll dive into the most useful commands, tips, and tricks for listing files in a directory in Linux. Trust me; you’ll feel like a Linux wizard once you get the hang of these commands.

Listing files in a directory in Linux

1: Getting started with the ‘ls’ command

The ‘ls’ command is the most popular and widely-used command to list files in a directory. It is versatile and comes with numerous options to customize the output. Let’s explore some of the most useful options:

Basic usage: Simply type ‘ls’ in the terminal to list files and directories in the current directory.

using ls command to view content of directory

Using the ls command to view the content of the directory

List hidden files: To reveal hidden files (those starting with a dot), use ‘ls -a’.

listing hidden files using ls a option

Listing hidden files using the ls -a option

Long listing format: To get a detailed list of files, including permissions, ownership, size, and modification date, use ‘ls -l’.

listing files with details using ls l option

Listing files with details using the ls -l option

Sort by modification time: To sort files by modification time, use ‘ls -lt’. Add the ‘-r’ option to reverse the order, as in ‘ls -ltr’.

more ls options

Using ls options to sort as per modification time

2: Spice up the ‘ls’ command with aliases and colors

You can use aliases and colors to make the ‘ls’ command even more engaging and informative. Here’s how:

Colorize output: To add colors to the ‘ls’ output, use ‘ls -a –color=auto’. This makes differentiating between files, directories, and symbolic links easier. Note that it’s possible that your Linux distro automatically configures colors for the ls command by default, like the example screenshot below from the Pop!_OS terminal. Pop!_OS is a Linux distribution based on Ubuntu, which usually has colorized output enabled by default for the ls command. The default shell configuration files for both Bash and Zsh in Ubuntu-based distributions, including Pop!_OS, typically have settings to enable colored output for the ls command.

ls -a --color=auto
colorized output using color option in ls

Colorized output using the color option in ls

Create aliases: If you find yourself using specific ‘ls’ options frequently, create aliases to save time. For example, you can create an alias for ‘ls -l’ by adding ‘alias ll=”ls -l”‘ to your shell configuration file (e.g., ~/.bashrc or ~/.zshrc).

alias la="ls -a"

So next time you type “la”, the terminal processes it as “ls -a” for you. Neat, right?

creating and using alias example

Creating and using alias example

3: Advanced listing with ‘tree’ and ‘find’

For more advanced file listing, you can use the ‘tree’ and ‘find’ commands:

tree‘: This command displays directories and files in a tree-like structure. Install it using ‘sudo apt install tree’ on Debian-based systems or ‘sudo yum install tree’ on RHEL-based systems. Once installed, type the tree in the terminal and see the beautiful representation!

tree command usage

tree command usage

You can also use various options with the tree command to customize its output. Some common options include:

  • -L n: Limit the depth of the directory tree to n levels.
  • -d: Display directories only, excluding files.
  • -P pattern: List only files and directories that match the given pattern (use wildcards like * and ?).
  • -I pattern: Exclude files and directories that match the given pattern.
  • –filelimit n: Do not descend directories containing more than n files/directories.

find‘: This powerful command searches for files and directories based on various criteria. For example, use’ find’ to find all ‘.txt’ files in the current directory and its subdirectories. -name “*.txt”‘.

For example, to search within the Home directory, I will use

find *.txt
find command usage

find command usage

4: Tips and tricks

Here are some handy tips and tricks to elevate your file listing game:

Combine options: You can combine multiple ‘ls’ options, like ‘ls -la’ for a detailed list of all files, including hidden ones.
Use wildcards: Wildcards like ‘*’ and ‘?’ can help you filter the output. For example, ‘ls *.txt’ lists all ‘.txt’ files in the directory.
List files in multiple directories: To list files in several directories simultaneously, use ‘ls dir1 dir2 dir3’.

5: Troubleshooting tips

If you encounter issues while listing files, try these troubleshooting tips:

  • Check your permissions: Ensure you have the necessary permissions to access the directory.
  • Verify the directory path: Ensure you use the correct one, especially when using absolute paths.


In the Linux world, listing files in a directory is an essential skill. You can navigate your file system like a pro by mastering the ‘ls’ command and its numerous options. Don’t forget to explore advanced commands like ‘tree’ and ‘find’ for more complex file listings. Adding color, using aliases, and leveraging wildcards will make your Linux experience more engaging and efficient.

In my opinion, learning these commands is a rite of passage for every Linux user. So go ahead, open up that terminal, and put these tips and tricks to good use. And remember, practice makes perfect. The more you explore the command line, the more confident and proficient you’ll become.

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, 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