A learning project, to clone the tree command from Linux. Demonstrates file system mastery, terminal output, and CLI.
Impliments these options from tree:
- listing of multiple specified directories or the current working directory
- report of file and directory count
- show/hide hidden files
- list directories only
- display the inode
- display the device number
- display the permitions code
- display the owner name
- display the owner's group
- display the file size in bytes or kilobytes, etc.
- display modification date and time, or date and year for older modifications
- put * and / after executables and directories
- color directories and executables (as of now cannot be turned off)
- sort the files alphebeticaly, by date modified, or not at all
- display the files in reverse order
What should still be implimented:
- output directly to a file
- listing the full path to files in subdirectories
- descending to only a specified level
- working with status change times
- sorting by status change time
- listing directories first
- input from file
- turning off colorization
- not printing indentation lines
- printing time by arbitray formats
- calculating directory sizes
- pruning empty directories
- pattern matching
- JSON representation
- =@|> notations
- symlink support
What I have no intention of cloning:
- Dealing with non-printable characters
- Quotes around names
- Sorting by version
- Printing with ANSI or CP437 graphics
- XML and HTML