# group_files_into_dir a CLI tool to group files into directories based on their filenames. ![group_files_into_dir](./images/group_files_into_dir.gif) ## Installation Download binary file from [releases](https://github.com/craftgear/group_files_into_dirs/releases) page and put it in a path directory. or using cargo to Install ```bash cargo install group_files_into_dir ``` or build from source. ```bash git clone https://github.com/craftgear/group_files_into_dirs cargo build --release ``` ## Usage ### Interactive mode (default) extract keywords from filenames. delimiters are `,_-`, `space` and braces `()[]{}` . - `dir` - directory to group files in. ```bash group_files_into_dir ``` ### specify keywords by yourself - `keywords` - words to use for grouping files, comma separated. - `dir` - directory to group files in. ```bash group_files_into_dir -k ``` ### use directory name as keyword Once you've created directories with interactive mode or specific keywords mode, this mode would be your daily driver. With `-d` option, you can group files into directories based on directory names. Let's say you have `inquiry` directory and `quote` directory in `docs` directory. Now when you put `inquiry_2021-01-01.txt` and `quote_2021-01-01.txt` in `docs` directory, you can move them into `inquiry` and `quote` directories with this mode. - `dir` - directory to group files in. ```bash group_files_into_dir -d ``` ## Example ```bash # invoke interactive mode (default) # then ask you to select keywords. group_files_into_dir ./ ``` ```bash # group files in current directory based on keywords "hello" and "world" # no keyword selection prompt will be shown. group_files_into_dir -k "hello,world" ./ ``` ```bash # now you can occasionally organize files with -d option. group_files_into_dir -d ./ ``` ## LICENSE MIT License