Skip to main content
Quick Tip

How to List Files Recursively in Linux command line

Want to list files recursively and see the contents of all the subdirectories in Linux? Here's how you can do that.

Sagar Sharma

Warp Terminal

The ls command is the default for viewing the contents of a directory. This is despite the existence of the dedicated dir command.

The ls command list the contents of the present directory, but it doesn't show the contents of the subdirectories by default. You can make it though.

Use ls command to list files recursively

You can change the default behavior of the ls command to list files recursively by using the -R option.

ls -R Directory_name

As you can see, it shows the contents of every subdirectory one by one.

That's uppercase R. the lowercase r is used for the reverse display of ls output.

But wait, you can't expect Linux to have just one solution. Here are some other ways of listing files recursively.

Use the tree command to list files recursively

By far, this is my favorite utility when it comes to listing files recursively as it gets the output in the easiest way possible.

But it does not come pre-installed in most distributions. If you're on a Debian-based distro, you can use this command for installation:

sudo apt install tree

Once you are done with the installation, you just have to append the filename with the tree command:

tree Directory_name

Use the find command to list files recursively

You'll find me often praising the find command being so extensive with more than 50 options and can also be used for listing files recursively.

You can recursively search sub-directories with the -ls option of the find command. It will list all the files but not the hidden files. It will show additional information such as read-write permissions:

find Directory_name -ls

Similarly, you can also use the -print option with the find command if you just want to list files recursively:

find Directory_name -print

Use the du command to list files recursively

The du command is used to show the storage size of files and when used with the -a option, it will count and print the files recursively.

But I'm also going to use the -c option that will sum the total number of files available in the specified directory:

Wrapping Up

This was my take on how you can print files recursively in Linux. But you can do more with those utilities with enough knowledge.

And we have a detailed guide on how you can make the most out of man pages in Linux so you can be creative whenever you want!

Sagar Sharma