fmsh
is a lightweight and high-performance file management shell designed to streamline file system operations and analytics. The shell provides a user-friendly interface to manage files, perform advanced analytics, and execute tasks efficiently, leveraging the power of Go’s goroutines for enhanced performance.
- Use gorotine to optmise the linux commands like
cp
,find
and others. - e.g the analytics command (
inspect
) leverages goroutines to analyze files and directories in parallel, significantly reducing processing time for large directories. Looking forwards to leverage it in other commands - Undo functionality for rm like commands
-
Clone the repository:
git clone https://github.com/Agent-Hellboy/fmsh.git cd fmsh
-
Build the project:
go build -o fmsh ./cmd
-
Run the shell:
./fmsh
- Currently, you can install the binary for Mac using homebrew
Launch the shell:
fmsh>
Example commands:
- Analytics:
Output:
fmsh> inspect
File System Analytics for: /example-dir ----------------------------------------- Number of files: 10 Number of directories: 3 Total size of files: 20480 bytes Largest file: /example-dir/file4.png (4096 bytes) Most recently modified file: /example-dir/file2.go (Modified at: Thu, 20 Nov 2024 14:23:45 UTC) -----------------------------------------
Command | Description |
---|---|
inspect |
Perform analytics on the current directory. |
search |
Search files with wildcard patterns. |
disk-usage |
Summarize the disk usage of the current directory. |
tree |
Display the directory structure in a tree format. |
clean-tmp |
Identify and optionally delete temporary files. |
zip |
Create a zip archive of specified files. |
unzip |
Extract a zip archive. |
rename |
Rename a file or directory. |
chmod |
Modify file permissions. |
open |
Open a file with the system's default application. |
preview |
Display the first few lines of a file. |
Several others
- Performance: Uses Go’s goroutines for high-performance analytics.
- Flexibility: Offers a variety of commands for common file management tasks.
- Simplicity: Intuitive command structure for easy interaction.
We welcome contributions to improve fmsh
! Feel free to submit pull requests or open issues on GitHub.
This project is licensed under the GPL-3.0 License.
A lot can be done.