dwww Home | Manual pages | Find package

TREE(1)                     General Commands Manual                    TREE(1)

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]  [--git-
       file[=]file]  [--matchdirs]  [--metafirst]  [--ignore-case] [--nolinks]
       [--hintro[=]file]     [--houtro[=]file]      [--inodes]      [--device]
       [--sort[=]name]  [--dirsfirst]  [--filesfirst]  [--filelimit  #] [--si]
       [--du]  [--prune]  [--charset[=]X]  [--timefmt[=]format]   [--fromfile]
       [--fflinks]   [--info]   [--infofile[=]file]  [--noreport]  [--version]
       [--help] [--] [directory ...]

DESCRIPTION
       Tree is a recursive directory listing program that produces a depth in-
       dented  listing  of  files,  which  is  colorized  ala dircolors if the
       LS_COLORS environment variable is set and output is to  tty.   With  no
       arguments,  tree lists the files in the current directory.  When direc-
       tory arguments are given, tree lists all the files  and/or  directories
       found  in the given directories each in turn.  Upon completion of list-
       ing all files/directories found, tree returns the total number of files
       and/or directories listed.

       By default, when a symbolic link is encountered, the path that the sym-
       bolic link refers to is printed after the name of the link in the  for-
       mat:

           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     All  files  are  printed.  By default tree does not print hidden
              files (those beginning with a dot `.').  In no event  does  tree
              print  the  file  system  constructs `.' (current directory) and
              `..' (previous directory).

       -d     List directories only.

       -l     Follows symbolic links if they point to directories, as if  they
              were  directories.  Symbolic links that will result in recursion
              are avoided when detected.

       -f     Prints the full path prefix for each file.

       -x     Stay on the current file-system only.  Ala find -xdev.

       -L level
              Max display depth of the directory tree.

       -R     Recursively cross down the tree each level directories  (see  -L
              option),   and   at  each  level  outputting  to  a  file  named
              00Tree.html (ala -o).

       -P pattern
              List only those files that match the wild-card pattern.  You may
              have  multiple  -P  options. 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  alter-
              nate  patterns. A '/' at the end of the pattern matches directo-
              ries, but not files.

       -I pattern
              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.

       --gitfile[=]file
              Use file explicitly as a gitignore file.

       --ignore-case
              If  a  match  pattern  is specified by the -P or -I option, this
              will cause the pattern to match without regard 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  option  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 indentation 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 be-
              low for more information on the format of .info files.

       --infofile[=]file
              Use file explicitly as a info file.

       --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) syntax.

       -o filename
              Send output to filename.

FILE OPTIONS
       -q     Print  non-printable  characters  in filenames as question marks
              instead of the default.

       -N     Print non-printable characters as is instead of as escaped octal
              numbers.

       -Q     Quote the names of files in double quotes.

       -p     Print  the  file  type  and permissions for each file (as per ls
              -l).

       -u     Print the username, or UID # if no username is available, of the
              file.

       -g     Print the group name, or GID # if no group name is available, of
              the file.

       -s     Print the size of each file in bytes along with the name.

       -h     Print the size of each file but in a more  human  readable  way,
              e.g.  appending  a size 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     Print  the  date of the last modification time or if -c is used,
              the last status change time for the file listed.

       -F     Append a `/' for directories, a `=' for socket files, a `*'  for
              executable  files,  a  `>'  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     Sort the output by version.

       -t     Sort the output by last modification time instead of  alphabeti-
              cally.

       -c     Sort the output by last status change instead of alphabetically.
              Modifies the -D option (if used) to print the last status change
              instead of modification time.

       -U     Do  not  sort.  Lists files in directory order. Disables --dirs-
              first.

       -r     Sort the output in reverse order.  This is a meta-sort that  al-
              ter the above sorts.  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     Makes tree not print the indentation lines, useful when used  in
              conjunction with the -f option.  Also removes as much whitespace
              as possible when used with the -J or -X options.

       -A     Turn on ANSI line graphics hack when  printing  the  indentation
              lines.

       -S     Turn  on  CP437  line  graphics (useful when using Linux console
              mode fonts). This option is now equivalent to `--charset=IBM437'
              and may eventually be depreciated.

       -n     Turn colorization off always, over-ridden by the -C option, how-
              ever overrides CLICOLOR_FORCE if present.

       -C     Turn colorization on always, using built-in  color  defaults  if
              the  LS_COLORS or TREE_COLORS environment variables are not set.
              Useful to colorize output to a pipe.

XML/JSON/HTML OPTIONS
       -X     Turn on XML output. Outputs the directory tree as an XML format-
              ted file.

       -J     Turn  on  JSON output. Outputs the directory tree as a JSON for-
              matted array.

       -H baseHREF
              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.do-
              main').  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.

       --hintro[=]file
              Use file as the HTML intro in place of the default one.  Use  an
              empty file or /dev/null to eliminate the intro altogether.

       --houtro[=]file
              Use  file as the HTML outro in place of the default one.  Use an
              empty file or /dev/null to eliminate the outro altogether.

       -T title
              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-sys-
              tem.   Paths provided on the command line are files to read from
              rather than directories to search.  The dot (.) directory  indi-
              cates  that  tree  should  read paths from standard input. NOTE:
              this is only suitable for reading the output of a  program  such
              as  find,  not 'tree -fi' as symlinks are not distinguished from
              files that simply contain ' -> ' as part of the filename  unless
              the --fflinks option is used.

       --fflinks
              Processes symbolic link information found in a file, as from the
              output of 'tree -fi --noreport'.  Only the first  occurrence  of
              the  string ' -> ' is used to denote the separation of the file-
              name from the link.

MISC OPTIONS
       --help Outputs a verbose usage listing.

       --version
              Outputs the version of tree.

       --     Option processing terminator.  No further options will  be  pro-
              cessed after this.

.INFO FILES
       .info  files  are similar to .gitignore files, if a .info file is found
       while scanning a directory it is read and added to a stack of .info in-
       formation.  Each file is composed of comments (lines starting with hash
       marks (#),) or wild-card patterns which may match a  file  relative  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 terminated by a non-tab indented line.
       Multiple patterns, each to a line, may share the same comment.

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)
       NO_COLOR       Disable colorization (effectively -n)  (see  https://no-
       color.org/)
       LC_CTYPE       Locale for filename output.
       LC_TIME        Locale for timefmt output, see strftime(3).
       TZ             Timezone for timefmt output, see strftime(3).
       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 emitting 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 characters.

       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 out-
       put a compact JSON tree on file descriptor 3 (what I call stddata,)  if
       present  and the environment variable STDDATA_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), ls(1), find(1), du(1), strftime(3) gitignore(5)

Tree 2.1.0                                                             TREE(1)

Generated by dwww version 1.15 on Sun Jun 16 09:32:44 CEST 2024.