Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
TREE(1)			    General Commands Manual		       TREE(1)

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

       tree  [-acdfghilnpqrstuvxACDFQNSUX]  [-L	 level [-R]] [-H baseHREF] [-T
       title] [-o filename] [--nolinks]	[-P pattern] [-I  pattern]  [--inodes]
       [--device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit
       #] [--si] [--prune] [--du] [--timefmt  format]  [--matchdirs]  [--from-
       file] [--] [directory ...]

       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-

	   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.

       Tree understands	the following command line switches:

       -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 of  them  execute  tree  again  adding  `-o
	      00Tree.html' as a	new option.

       -P pattern
	      List  only  those	files that match the wild-card pattern.	 Note:
	      you must use the -a option to also consider those	 files	begin-
	      ning with	a dot `.'  for matching.  Valid	wildcard operators are
	      `*' (any zero or more characters), `?' (any  single  character),
	      `[...]'  (any single character listed between brackets (optional
	      -	(dash) for character  range  may  be  used:  ex:  [A-Z]),  and
	      `[^...]'	(any  single character not listed in brackets) and `|'
	      separates	alternate patterns.

       -I pattern
	      Do not list those	files that match the wild-card pattern.

	      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.

	      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.

	      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.

	      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

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

       -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

       -Q     Quote the	names of files in double quotes.

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

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

       -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

	      Prints the inode number of the file or directory

	      Prints the device	number to which	the file or directory belongs

       -v     Sort the output by version.

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

       -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-

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

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

	      Sort  the	 output	 by type instead of name. Possible values are:
	      ctime (-c), mtime	(-t), size, or version (-v).

       -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

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

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

       -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 an 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  `
	      main/pub'	 (baseHREF  should be `
	      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.

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

	      Turns off	hyperlinks in HTML output.

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

       --help Outputs a	verbose	usage listing.

	      Outputs the version of tree.

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

       /etc/DIR_COLORS		System color database.
       ~/.dircolors	   Users color database.

       LS_COLORS      Color information	created	by dircolors
       TREE_COLORS    Uses  this for color information over LS_COLORS if it is
       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).
       TZ	 Timezone for timefmt output, see strftime(3).

       Steve Baker (
       HTML output hacked by Francesc Rocher (
       Charsets	and OS/2 support by Kyosuke Tokoro (

       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.

       dircolors(1), ls(1), find(1), du(1), strftime(3)

Tree 1.8.0							       TREE(1)


Want to link to this manual page? Use this URL:

home | help