# tree(1) - man - phpMan

[TREE(1)](https://www.chedong.com/phpMan.php/man/TREE/1/markdown)                                General Commands Manual                               [TREE(1)](https://www.chedong.com/phpMan.php/man/TREE/1/markdown)



## NAME
       tree - list contents of directories in a tree-like format.

## SYNOPSIS
       **tree**  [**-acdfghilnpqrstuvxACDFJQNSUX**]  [**-L**  _level_ [**-R**]] [**-H** _baseHREF_] [**-T** _title_] [**-o** _filename_]
       [**-P** _pattern_] [**-I** _pattern_] [**--gitignore**] [**--matchdirs**]  [**--metafirst**]  [**--ignore-case**]  [**--no**‐‐
       **links**]  [**--inodes**]  [**--device**]  [**--sort**[**=**]_name_]  [**--dirsfirst**] [**--filesfirst**] [**--filelimit** _#_]
       [**--si**] [**--du**] [**--prune**] [**--timefmt**[**=**]_format_] [**--fromfile**] [**--info**]  [**--noreport**]  [**--version**]
       [**--help**] [**--**] [_directory_ ...]


## DESCRIPTION
       _Tree_  is  a  recursive  directory  listing  program that produces a depth indented listing of
       files, which is colorized ala _dircolors_ if the **LS**___**COLORS** environment variable is set and out‐
       put  is  to tty.  With no arguments, _tree_ lists the files in the current directory.  When di‐
       rectory 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_ re‐
       turns the total number of files and/or directories listed.

       By default, when a symbolic link is encountered, the path that the symbolic link refers to is
       printed after the name of the link in the format:

           name -> real-path

       If  the  `**-l**'  option is given and the symbolic link refers to an actual directory, then _tree_
       will follow the path of the symbolic link as if it were a real directory.


## OPTIONS
       _Tree_ understands the following command line switches:


## LISTING OPTIONS
### -a
              with  a dot `.').  In no event does tree print the file system constructs `.' (current
              directory) and `..' (previous directory).

### -d

### -l
              bolic links that will result in recursion are avoided when detected.

### -f

### -x

### -L
              Max display depth of the directory tree.

### -R -L
              them execute **tree** again adding `-o 00Tree.html' as a new option.

### -P
              List only those files that match the wild-card _pattern_.  You may have multiple -P  op‐
              tions.  Note: you must use the _-a_ option to also consider those files beginning with a
              dot `.' for matching.  Valid wildcard operators are `*' (any zero or more characters),
              `**`  (any  zero  or more characters as well as null /'s, i.e. /**/ may match a single
              /), `?' (any single character), `[...]' (any single character listed between  brackets
              (optional - (dash) for character range may be used: ex: [A-Z]), and `[^...]' (any sin‐
              gle character not listed in brackets) and `|' separates alternate patterns. A  '/'  at
              the end of the pattern matches directories, but not files.

### -I
              Do  not  list  those files that match the wild-card _pattern_.  You may have multiple -I
              options.  See _-P_ above for information on wildcard patterns.

### --gitignore
              Uses  git  **.gitignore**  files  for  filtering  files  and   directories.    Also   uses
              **$GIT**___**DIR/info/exclude** if present.

### --ignore-case
              If a match pattern is specified by the **-P** or **-I** option, this will cause the pattern to
              match without regards to the case of each letter.

### --matchdirs
              If a match pattern is specified by the **-P** option, this will cause the  pattern  to  be
              applied to directory names (in addition to filenames).  In the event of a match on the
              directory name, matching is disabled for the directory's contents. If the **--prune**  op‐
              tion is used, empty folders that match the pattern will not be pruned.

### --metafirst
              Print the meta-data information at the beginning of the line rather than after the in‐
              dentation lines.

### --prune
              Makes tree prune empty directories from the output, useful when  used  in  conjunction
              with **-P** or **-I**.  See **BUGS** **AND** **NOTES** below for more information on this option.

       **--info** Prints file comments found in .info files.  See **.INFO** **FILES** below for more information
              on the format of .info files.

### --noreport
              Omits printing of the file and directory report at the end of the tree listing.

       **--charset** _charset_
              Set the character set to use when outputting HTML and for line drawing.

       **--filelimit** _#_
              Do not descend directories that contain more than _#_ entries.

       **--timefmt** _format_
              Prints (implies -D) and formats the date according to the format string which uses the
              [**strftime**(3)](https://www.chedong.com/phpMan.php/man/strftime/3/markdown) syntax.

### -o
              Send output to _filename_.

## FILE OPTIONS
### -q

### -N

### -Q

### -p

### -u

### -g

### -s

### -h
              letter for kilobytes (K), megabytes (M), gigabytes (G), terabytes (T),  petabytes  (P)
              and exabytes (E).

       **--si**   Like **-h** but use SI units (powers of 1000) instead.

       **--du**   For  each  directory report its size as the accumulation of sizes of all its files and
              sub-directories (and their files, and so on).  The total amount of used space is  also
              given  in  the  final  report (like the 'du -c' command.) This option requires tree to
              read the entire directory tree before emitting it, see **BUGS** **AND** **NOTES** below.   Implies
              **-s**.

### -D -c
              time for the file listed.

### -F
              `>' for doors (Solaris) and a `|' for FIFO's, as per ls -F

### --inodes
              Prints the inode number of the file or directory

### --device
              Prints the device number to which the file or directory belongs

## SORTING OPTIONS
### -v

### -t

### -c -D
              tion (if used) to print the last status change instead of modification time.

### -U --dirsfirst

### -r
              This option is disabled when **-U** is used.

### --dirsfirst
              List  directories before files. This is a meta-sort that alters the above sorts.  This
              option is disabled when **-U** is used.

### --filesfirst
              List files before directories. This is a meta-sort that alters the above sorts.   This
              option is disabled when **-U** is used.

       **--sort**[**=**]_type_
              Sort  the output by _type_ instead of name. Possible values are: **ctime** (**-c**), **mtime** (**-t),**
              **size**, or **version** (**-v).**


## GRAPHICS OPTIONS
### -i
              **-f**  option.   Also  removes as much whitespace as possible when used with the **-J** or **-x**
              options.

### -A

### -S
              is now equivalent to `--charset=IBM437' and may eventually be depreciated.

### -n -C
              COLOR_FORCE if present.

### -C
              TREE_COLORS environment variables are not set.  Useful to colorize output to a pipe.

## XML/JSON/HTML OPTIONS
### -X

### -J

### -H
              Turn  on HTML output, including HTTP references. Useful for ftp sites.  _baseHREF_ gives
              the base ftp location when using HTML output. That is,  the  local  directory  may  be
              `/local/ftp/pub',  but  it  must  be  referenced  as  `ftp://hostname.organization.do‐
              main/pub' (_baseHREF_ should be `ftp://hostname.organization.domain'). Hint:  don't  use
              ANSI  lines  with this option, and don't give more than one directory in the directory
              list. If you wish to use colors via CSS style-sheet, use the -C option in addition  to
              this option to force color output.

### -T
              Sets the title and H1 header string in HTML output mode.

### --nolinks
              Turns off hyperlinks in HTML output.

## INPUT OPTIONS
       **--fromfile** Reads a directory listing from a file rather than the file-system.  Paths provided
       on the command line are files to read from rather than directories to search.   The  dot  (.)
       directory indicates that tree should read paths from standard input. NOTE: this is only suit‐
       able for reading the output of a program such as find, not 'tree -fi' as symlinks cannot  (at
       least as yet) be distinguished from files that simply contain ' -> ' as part of the filename.


## MISC OPTIONS
       **--help** Outputs a verbose usage listing.

### --version
              Outputs the version of tree.

       **--**     Option processing terminator.  No further options will be processed after this.

### .INFO FILES
       **.info**  files  are similiar to .gitignore files, if a .info file is found while scanning a di‐
       rectory it is read and added to a stack of .info information. Each file is composed  of  com‐
       ments (lines starting with hash marks (#),) or wild-card patterns which may match a file rel‐
       ative to the directory the .info file is found in.  If a file should match a pattern, the tab
       indented  comment  that follows the pattern is used as the file comment.  A comment is termi‐
       nated by a non-tab indented line. Multiple patterns, each to a line, may share the same  com‐
       ment.


## FILES
       **/etc/DIR**___**COLORS**          System color database.
       **~/.dircolors**             Users color database.
       **.gitignore**               Git exclusion file
       **$GIT**___**DIR/info/exclude**    Global git file exclusion list
       **.info**                    File comment file
       **/usr/share/finfo/global**___**info**  Global file comment file



## ENVIRONMENT
       **LS**___**COLORS**      Color information created by dircolors
       **TREE**___**COLORS**    Uses this for color information over LS_COLORS if it is set.
       **TREE**___**CHARSET**   Character set for tree to use in HTML mode.
       **CLICOLOR**       Enables colorization even if TREE_COLORS or LS_COLORS is not set.
       **CLICOLOR**___**FORCE** Always enables colorization (effectively -C)
       **LC**___**CTYPE**       Locale for filename output.
       **LC**___**TIME**        Locale for timefmt output, see [**strftime**(3)](https://www.chedong.com/phpMan.php/man/strftime/3/markdown).
       **TZ**             Timezone for timefmt output, see [**strftime**(3)](https://www.chedong.com/phpMan.php/man/strftime/3/markdown).
       **STDDATA**___**FD**     Enable the stddata feature, optionally set descriptor to use.


## AUTHOR
       Steve Baker (<ice@mama.indstate.edu>)
       HTML output hacked by Francesc Rocher (<rocher@econ.udg.es>)
       Charsets and OS/2 support by Kyosuke Tokoro (<NBG01720@nifty.ne.jp>)


## BUGS AND NOTES
       Tree  does  not prune "empty" directories when the -P and -I options are used by default. Use
       the --prune option.

       The -h and --si options round to the nearest whole number unlike the ls implementations which
       rounds up always.

       Pruning  files and directories with the -I, -P and --filelimit options will lead to incorrect
       file/directory count reports.

       The --prune and --du options cause tree to accumulate the entire tree in memory before  emit‐
       ting  it.  For large directory trees this can cause a significant delay in output and the use
       of large amounts of memory.

       The timefmt expansion buffer is limited to a ridiculously large 255  characters.   Output  of
       time strings longer than this will be undefined, but are guaranteed to not exceed 255 charac‐
       ters.

       XML/JSON trees are not colored, which is a bit of a shame.

       Probably more.

       As of version 2.0.0, in Linux, tree will attempt to automatically output a compact JSON  tree
       on  file  descriptor  3  (what  I call stddata,) if present and the environment variable STD‐
       DATA_FD is defined or set to a positive non-zero file descriptor value to use to  output  on.
       It  is  hoped  that  some  day  a better Linux/Unix shell may take advantage of this feature,
       though BSON would probably be a better format for this.


## SEE ALSO
       [**dircolors**(1)](https://www.chedong.com/phpMan.php/man/dircolors/1/markdown), [**ls**(1)](https://www.chedong.com/phpMan.php/man/ls/1/markdown), [**find**(1)](https://www.chedong.com/phpMan.php/man/find/1/markdown), [**du**(1)](https://www.chedong.com/phpMan.php/man/du/1/markdown), [**strftime**(3)](https://www.chedong.com/phpMan.php/man/strftime/3/markdown) [**gitignore**(5)](https://www.chedong.com/phpMan.php/man/gitignore/5/markdown)



Tree 2.0.0                                                                                   [TREE(1)](https://www.chedong.com/phpMan.php/man/TREE/1/markdown)
