Print Linux Directory Structure as a Tree

Linux is an open-source operating system that offers various powerful command-line tools to manage files and directories. One such essential tool is the tree command, which displays the directory structure of a Linux system in a hierarchical tree-like format. This visual representation makes it easier to understand the nested structure of directories and files.

What is the tree Command?

The tree command is a command-line utility that displays the directory structure of a file system in a tree-like format. It shows the hierarchical relationship between directories, sub-directories, and files using ASCII characters to create visual branches. The tree command is available on most Linux distributions and can be installed using the package manager if not present.

The basic syntax of the tree command is

tree [options] [directory]

Where directory specifies the target directory (defaults to current directory if omitted), and options allow customization of the output format and content.

Common Options

The tree command provides various options to customize the output

  • -d or --dirs-only Display only directories, excluding files

  • -L level or --max-depth level Limit the depth of the tree to the specified level

  • -a or --all Include hidden files and directories (those starting with a dot)

  • -I pattern or --exclude pattern Exclude files and directories matching the specified pattern

  • -C Display output in color for better visual distinction

  • -o filename Export the directory structure to a specified file

Examples

Basic Directory Structure Display

To display the directory structure of the current directory

tree
.
??? Documents
?   ??? reports
?   ?   ??? annual_report.pdf
?   ??? notes.txt
??? Downloads
?   ??? software.zip
?   ??? images
?       ??? photo1.jpg
?       ??? photo2.png
??? Projects
    ??? web_app
    ?   ??? index.html
    ?   ??? style.css
    ??? scripts
        ??? backup.sh

Display Only Directories

To show only the directory structure without files

tree -d
.
??? Documents
?   ??? reports
??? Downloads
?   ??? images
??? Projects
    ??? web_app
    ??? scripts

Limit Tree Depth

To limit the display to 2 levels deep

tree -L 2
.
??? Documents
?   ??? reports
?   ??? notes.txt
??? Downloads
?   ??? software.zip
?   ??? images
??? Projects
    ??? web_app
    ??? scripts

Include Hidden Files

To display hidden files and directories

tree -a

Exclude Specific Patterns

To exclude all .txt files from the display

tree -I "*.txt"

Advanced Usage

Export to File

Export the directory structure to a text file for documentation

tree -o directory_structure.txt

Colorized Output

Display the tree structure with color coding

tree -C

XML Format Output

Generate directory structure in XML format for integration with other tools

tree -X

ASCII Format

Use plain ASCII characters for the tree structure

tree -A

Practical Use Cases

Use Case Command Description
Project Documentation tree -o project_structure.txt Generate project structure for README files
System Analysis tree -d -L 3 Get overview of directory hierarchy
Clean Display tree -I "__pycache__|*.pyc" Exclude temporary files from output
Quick Overview tree -C -L 2 Colorized shallow directory view

Installation

If the tree command is not installed on your system, you can install it using

# Ubuntu/Debian
sudo apt install tree

# CentOS/RHEL
sudo yum install tree

# Fedora
sudo dnf install tree

Conclusion

The tree command is an invaluable tool for visualizing Linux directory structures in a clear, hierarchical format. Its various options allow for customized output suitable for documentation, system analysis, and quick directory navigation. Whether you need a simple overview or detailed structure export, the tree command provides an efficient solution for understanding file system organization.

Updated on: 2026-03-17T09:01:38+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements