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.