This is Cat's Eye Technologies'
tree, a command-line tool that displays an
indented directory tree, similar to "The Tree Command for Linux" except simpler.
- is written in Python (Python 3 by default; also tested with 2.7)
- is small and has no dependencies besides Python
- is in the public domain (see
- is really quite crude
- displays a summary of the directory structure by default (because to me, that's the point of this sort of tool: give me a conceptual overview of the directory structure at this point in the filesystem, so I can orient myself)
- never follows symbolic links
- always outputs a
/after each directory name
- doesn't have any ASCII art (yet; it might someday as the lines do make it a bit easier to "read" the tree)
- has no build/install system; either copy it to somewhere on your
search path, or alter your search path to include the
scriptdirectory in this repo, or use some system that solves this problem, like shelf.
tree [-f|--full] [-a|--all-files] [-1|--1-line] [-c|--count] [-w|--max-width <int>] [-x|--exclude <list>] [DIRECTORY]
If DIRECTORY is not supplied, the current directory is assumed.
--full option lists each file in a directory on its own line.
--all-files option includes files whose names begin with a
. character, which would otherwise be hidden.
--1-line option lists a summary of the files in each directory
on one line, truncating the line if it is longer than the max-width.
--count option causes a count of files in each directory to
be display instead of listing the files themselves.
If none of those options are given, all files in a directory are listed compactly over multiple lines, in a "block".
--max-width option can be used to set the length of truncation
or block-wrapping. It defaults to the width of the terminal window
as returned by
stty size, if that program can be run, otherwise 75.
--exclude option sets the list of directory names to not descend
into (a comma-separated list). It defaults to
git clone https://git.catseye.tc/tree/
- Merge pull request #1 from catseye/develop-1.2 Chris Pressey (commit: GitHub) 10 days ago
- Add .git to the list of default excludes. Chris Pressey 10 days ago
- Add very rudimentary test script. Chris Pressey 11 days ago
- Merge branch 'develop-1.2' of https://github.com/catseye/tree into develop-1.2 Chris Pressey 11 days ago
- Add `-a`|`--all-files` flag, to show files starting with `.`. Chris Pressey 11 days ago
- Run the script under Python 3 by default. Chris Pressey 11 days ago
- Branch to embark on a possible version 1.2 at some point. Chris Pressey 1 year, 4 months ago
- Final edits to README before release of 1.1. Chris Pressey 4 years ago
- Delete .hgtags, add .gitignore Chris Pressey 4 years ago
- Edit README to make it all up-to-date. Chris Pressey 4 years ago