diff --git a/README.md b/README.md index e7f43d2..230f080 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,126 @@ -# Fast Files (ff) +

Fast Files

+

+ + License: MIT + +

-## Description +> Fast Files is a project consisting of two bash scripts, `ff` and `ffv`, that combine the functionality of `mkdir` and `touch`, enabling you to create directory structures and files in a single command. The `ffv` script additionally prints the created objects in a tree-like structure using `eza`, `lsd` or `ls`. -ff is a bash script which is a combination of 'mkdir' and 'touch'. It can create directory structures and files simultaneously and lists the created objects using eza, lsd, or ls. +## Scripts -## Dependencies +- `ff`: creates the specified files and directories without printing any output. +- `ffv`: performs the same operations as `ff` but also lists the created objects. + +## ✨ Features + +- Create single or multiple files and directories in one command. +- Automatically create parent directories as needed. +- Supports brace expansion for creating complex directory and file structures in one go. +- Optionally lists the created objects with enhanced listing tools (`eza` or `lsd`) if available, or fallback to `ls` (`ffv` only). + +## πŸ› οΈ Dependencies - bash -- [eza](https://github.com/eza-community/eza) (optional) -- [lsd](https://github.com/lsd-rs/lsd) (optional) +- Optional: [eza](https://github.com/eza-community/eza) or [lsd](https://github.com/lsd-rs/lsd) for enhanced directory listing -## Usage +## πŸ—οΈ Installation + +Place both scripts in a directory included in your `$PATH`. Ensure the scripts are executable: ```bash - ff [path file or folder] - --help : prints usage info +chmod +x /path/to/ff +chmod +x /path/to/ffv ``` -## Examples - -### Single file +## πŸš€ Usage ```bash -ff file +ff [path file or folder] +ffv [path file or folder] ``` -``` - file -``` +### Arguments -### Single directory +- `--help` or `-h` : Prints usage information -```bash -ff dir/ -``` +### Examples -``` - dir -``` +- Create a single file: + ```bash + ff file + ``` + ``` + ───file + ``` -### Multiple files +- Create a single directory: + ```bash + ff dir/ + ``` + ``` + ───dir + ``` -```bash -ff file1 file2 file3 -``` +- Create multiple files: + ```bash + ff file1 file2 file3 + ``` + ``` + β”Œβ”€file1 + ─┼─file2 + └─file3 + ``` -``` - file1 - file2 - file3 -``` +- Create multiple directories: + ```bash + ff dir1/ dir2/ dir3/ + ``` + ``` + β”Œβ”€dir1 + ─┼─dir2 + └─dir3 + ``` -### Multiple directories +- Create a file in a directory: + ```bash + ff dir/file + ``` + ``` + ───dir───file + ``` -```bash -ff dir1/ dir2/ dir3/ -``` +- Create a directory within a directory: + ```bash + ff dir1/dir2/ + ``` + ``` + ───dir1───dir2 + ``` -``` - dir1 - dir2 - dir3 -``` +- Create multiple files in multiple directories: + ```bash + ff dir1/dir2/file1 dir3/file2 + ``` + ``` + β”Œβ”€dir1───dir2───file1 + ─┴─dir3───file2 + ``` -### File in a directory +- Use [brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) for complex structures (supported in bash, zsh, fish): + ```bash + ff dir1/{dir2/{file1,file2}.txt,dir3/file3.txt} + ``` + ``` + β”Œβ”€file1.txt + ───dir1─┬─dir2─┴─file2.txt + └─dir3───file3.txt + ``` -```bash -ff dir/file -``` - -``` -dir -└── file -``` - -### Directory in a directory - -```bash -ff dir1/dir2/ -``` - -``` -dir1 -└── dir2 -``` - -### Multiple files in multiple directories - -```bash -ff dir1/dir2/file1 dir3/file2 -``` - -``` -dir1 -└── dir2 - └── file1 -dir3 -└── file2 -``` - -### If your shell supports brace expansion e.g bash, zsh, fish - -```bash -ff dir1/{dir2/{file1,file2}.txt,dir3/file3.txt} -``` - -``` -dir1 -β”œβ”€β”€ dir2 -β”‚ β”œβ”€β”€ file1.txt -β”‚ └── file2.txt -└── dir3 - └── file3.txt -``` - -## Related Projects +## πŸ”— Related Projects [Advanced New File](https://github.com/tanrax/terminal-AdvancedNewFile) + +## ❀️ Show Your Support + +Give a ⭐️ if this project helped you.