FileGenie is a command-line tool that helps you manage your files by generating directory trees and organizing them based on their types.
Generate a visual representation of a directory structure using the tree command. Automatically categorize and move files within a directory based on their extensions using the organise command.
Node.js and npm (Node Package Manager) installed on your system. Download them from nodejs
Open your terminal or command prompt and navigate to the directory where you want to use filegenie. Then, execute the following command to install the package globally:
npm install -g filegenie
Use code with caution.
tree: used to generate a directory tree.
organise: used to organize files based on their extensions.
help: displays a list of available commands and usage instructions.
filegenie <command> [directory_path]
Use code with caution.
: Specify the desired command (tree, organise, or help). [directory_path]: (Optional) Path to the directory you want to operate on. Defaults to the current working directory. Examples:
Generate a tree structure for your Downloads directory:
filegenie tree ~/Downloads
Use code with caution.
Organize files in your Documents directory:
filegenie organise ~/Documents
Use code with caution.
Get help on available commands:
filegenie help
Use code with caution.
The organise command creates a subdirectory named "organised_files" within the specified directory (or the current working directory). Files are then categorized and moved into subdirectories within "organised_files" based on their extensions.
Filegenie uses the following categories and file types to organize your files:
Archives: bz2, dmg, iso, pkg
Databases: db, sqlite, mdb, accdb
Fonts: ttf, otf, woff, woff2
Presentations: ppt, pptx, key, odp
RasterGraphics: bmp, gif, ico, jpeg, jpg, png, raw, tif, tiff
Scripts: js, py, php, rb
Text: txt, rtf, doc, docx
Video: mp4, mov, avi, mkv, webm
VectorGraphics: svg, ai, eps, pdf
3DModels: obj, fbx, blend, dae
Compressed: zip, rar, 7z
The organise command categorizes files based on their extensions. If an extension is not found in the supported list, the file will be moved to an "others" category. You can customize the supported file types by modifying the utility.types object in the utility.js file.
Feel free to contribute to this project by reporting bugs or suggesting improvements