How to use the command 'tre' (with examples)
The ’tre’ command is a powerful tool that allows users to display the contents of a directory as a tree structure. It offers various options to customize the output, such as printing only directories, displaying the tree structure in JSON format, limiting the depth of the tree, showing hidden files and directories, assigning shell aliases, excluding certain paths, and more.
Use case 1: Print directories only
Code:
tre --directories
Motivation: Sometimes, you may only be interested in getting a quick overview of the directories within a directory. By using the ‘–directories’ option, you can exclude files from the output and focus solely on the directory structure.
Explanation: The ‘–directories’ option instructs the ’tre’ command to only print directories and exclude files from the tree diagram.
Example output:
.
├── dir1/
├── dir2/
└── dir3/
Use case 2: Print JSON containing files in the tree hierarchy
Code:
tre --json
Motivation: If you need the tree structure in a machine-readable format, the ‘–json’ option comes in handy. It prints a JSON object with all the files in the tree hierarchy.
Explanation: The ‘–json’ option enables the ’tre’ command to output the tree structure as a JSON object, making it easier to parse and use in other applications.
Example output:
{
"name": ".",
"type": "directory",
"children": [
{
"name": "dir1",
"type": "directory",
"children": [
{
"name": "file1.txt",
"type": "file"
},
{
"name": "file2.txt",
"type": "file"
}
]
},
{
"name": "dir2",
"type": "directory"
},
{
"name": "dir3",
"type": "directory"
}
]
}
Use case 3: Print files and directories up to the specified depth limit
Code:
tre --limit 3
Motivation: When dealing with large directory structures, you may want to limit the depth of the tree to make it more manageable and avoid overwhelming output. The ‘–limit’ option allows you to specify how deep the tree should be displayed.
Explanation: The ‘–limit’ option followed by a numeric value specifies the depth limit. By setting it to ‘3’, the ’tre’ command will display the tree structure up to a depth of three, including both files and directories.
Example output:
.
├── dir1/
│ ├── file1.txt
│ └── file2.txt
├── dir2/
└── dir3/
Use case 4: Print all hidden files and directories using colorization
Code:
tre --all --color always
Motivation: Hidden files and directories are typically excluded from the output by default, but sometimes it’s necessary to include them. Additionally, by applying colorization, the tree becomes more visually appealing and easier to navigate.
Explanation: The ‘–all’ option tells the ’tre’ command to include hidden files and directories in the tree structure. The ‘–color’ option followed by ‘always’ enables colorization for a more visually pleasing output.
Example output:
.
├── dir1/
│ ├── file1.txt
│ └── file2.txt
├── .hidden_dir/
│ ├── .hidden_file1.txt
│ └── .hidden_file2.txt
├── dir2/
└── dir3/
Use case 5: Print files with associated shell aliases
Code:
tre --editor "code"
Motivation: Quickly accessing files within the tree hierarchy can be time-consuming, especially when dealing with a large number of files. The ‘–editor’ option allows you to assign a shell alias to each file, making it easier to open the associated file using the provided command or the default editor.
Explanation: The ‘–editor’ option followed by a command (in this case, “code”) assigns a shell alias to each file in the tree structure. The assigned alias can be used to quickly open the associated file using the specified command.
Example output:
.
├── dir1/
│ ├── file1.txt -> tre-file1
│ └── file2.txt -> tre-file2
├── dir2/
└── dir3/
Use case 6: Exclude paths matching a regular expression
Code:
tre --exclude "file[0-9]+\.txt"
Motivation: In some cases, you may want to exclude certain files or directories from the tree structure based on a specific pattern. The ‘–exclude’ option allows you to specify a regular expression to match the paths that should be excluded.
Explanation: The ‘–exclude’ option followed by a regular expression (in this case, “file[0-9]+.txt”) excludes all paths that match the provided regular expression from the tree structure.
Example output:
.
├── dir1/
├── dir2/
└── dir3/
Use case 7: Display version
Code:
tre --version
Explanation: The ‘–version’ option displays the version number of the ’tre’ command.
Example output:
tre version 1.0.0
Use case 8: Display help
Code:
tre --help
Explanation: The ‘–help’ option displays the help message, providing a summary of the available options and their usage.
Example output:
Usage: tre [OPTION]
Options:
--directories Print directories only
--json Print JSON containing files in the tree hierarchy
--limit DEPTH Print files and directories up to the specified depth limit
--all Print all hidden files and directories
--color MODE Specify the colorization mode (automatic, always, never)
--editor COMMAND Assign a shell alias to each file to open it with the provided command
--exclude REGEX Exclude paths matching the regular expression
--version Display version
--help Display this help
For more information, visit: https://github.com/dduan/tre
Conclusion:
With the ’tre’ command, you can visualize the directory structure as a tree, customize the output, and perform various tasks, such as displaying only directories, excluding certain paths, assigning shell aliases, and more. By leveraging its options, you can efficiently navigate and work with complex directory hierarchies.