UsageΒΆ

lstree is a command line utility to show a folder structure in tree form. This is useful when you are working on a project that involvs many files and folders.

Here is an example lstree use:

tochukasui:testbed$ lstree
|- ./
   |- emptydir/
   |- somedir/
      |- somefile.compiled
      |- somefile1
      |- somefile2
      |- somefile3

   |- datafile.xml
   |- ignore.me.compiled
   |- testfile

If you want to see hidden files, use -s:

tochukasui:testbed$ lstree -s
|- ./
   |- .hiddendir/
      |- .hiddenfile
      |- .hiddenfile.compiled

   |- emptydir/
   |- somedir/
      |- somefile.compiled
      |- somefile1
      |- somefile2
      |- somefile3

   |- datafile.xml
   |- ignore.me.compiled
   |- testfile

For applying a wildcard filter to the folder contents, use -f options:

tochukasui:testbed$ lstree -f '*.compiled' 'data*'
|- ./
   |- emptydir/
   |- somedir/
      |- somefile.compiled

   |- datafile.xml
   |- ignore.me.compiled

For ignoring files and directories, use -i option:

tochukasui:testbed$ lstree -i somefile* 'data*'
|- ./
   |- emptydir/
   |- somedir/
   |- ignore.me.compiled
   |- testfile

To ignore empty folder, there is –ignore-empty option:

tochukasui:testbed$ lstree -i somefile* 'data*' --ignore-empty
|- ./
   |- ignore.me.compiled
   |- testfile

For help, use -h:

tochukasui:testbed$ lstree -h
usage: lstree [-h] [-s] [--terse] [-i [IGNORE [IGNORE ...]]]
              [-f [FILTER [FILTER ...]]] [--ignore-empty] [--tab TAB]
              [folders [folders ...]]

positional arguments:
  folders               folders to draw tree for

optional arguments:
  -h, --help            show this help message and exit
  -s, --show-hidden     list hidden files and folders
  --terse               make it terse, visual pleasure is not desired
  -i [IGNORE [IGNORE ...]], --ignore [IGNORE [IGNORE ...]]
                        ignore any file or folder that matches these wildcards
  -f [FILTER [FILTER ...]], --filter [FILTER [FILTER ...]]
                        filter and show *ONLY FILES* that match these
                        wildcards
  --ignore-empty        ignore any empty folder (after filtering)
  --tab TAB             how many spaces per tab. more the spaces, more spread
                        out the tree

Specifying –terse gets rid of all new lines that are added to space out the tree:

tochukasui:testbed$ lstree -s --terse
|- ./
   |- .hiddendir/
      |- .hiddenfile
      |- .hiddenfile.compiled
   |- emptydir/
   |- somedir/
      |- somefile.compiled
      |- somefile1
      |- somefile2
      |- somefile3
   |- datafile.xml
   |- ignore.me.compiled
   |- testfile

While –tab option allows you to shrink or spread out the tree horizontally:

tochukasui:testbed$ lstree -s --terse --tab 6
|- ./
      |- .hiddendir/
            |- .hiddenfile
            |- .hiddenfile.compiled
      |- emptydir/
      |- somedir/
            |- somefile.compiled
            |- somefile1
            |- somefile2
            |- somefile3
      |- datafile.xml
      |- ignore.me.compiled
      |- testfile
tochukasui:testbed$