--- title: "tree" tags: [ "basics", "tree", "markdown" ] --- The `tree` utility outputs a full listing of everything in your current directory, and those below. - Just directories: `tree -d` - Output colour to `less`: `tree -C --info | less -re` - Ignore files in the `.gitignore` file: `tree --gitignore` You can place information about the files in a directory to use with the `tree --info` option, like this: ``` config Config files. This is a git submodule. README.md Summary of the git. *.jpg Little picture, does not display words well. ``` Each description-line starts with a tab. ## Markdown Conversion To represent a file structure as a nested series of markdown lists, you can try this horrifying `sed` one-liner: ```bash tree -tf --dirsfirst --gitignore --noreport --charset ascii | \ sed -e 's/| \+/ /g' \ -e 's/[|`]-\+/ */g' \ -e 's:\(* \)\(\(.*/\)\([^/]\+\)\):\1[\4](\2):g' ```