“Tree is a recursive directory listing program that produces a depth indented listing of files. With no arguments, tree lists the files in the current directory. When directory arguments are given, tree lists all the files and/or directories found in the given directories each in turn. Upon completion of listing all files/directories found, tree returns the total number of files and/or directories listed.” 
The tree command on Linux offers numerous output options. One option lists directories and subdirectories. By default, the command traverses the entire directory structure, but an option limits the levels to higher-level directories.. Another options lists the directories and subdirectories with the files they contain. Other options also include the file size, last modified date, and full path. By default, the output uses graphic characters and spacing to clearly represent the hierarchy; but other options can format the output as a flat file more easily imported to other programs.
The Linux tree command has been ported Mac OS X and is available from Homebrew (https://formulae.brew.sh/formula/tree#default).
The tree command native to Windows is fairly limited, with limited options to display just the directory structure or the directory structure and file names. The Linux version of treehas been ported to Windows (http://gnuwin32.sourceforge.net/packages/tree.htm).
tree is run from a command prompt. Stdout can be redirected to other programs or to a file.