Readme
moove - 🚚 Manipulate file names and locations
moove is a command line tool for renaming and moving files and directories using a text editor.
🎨 Features |
🚀 Usage |
📥 Getting started |
💙 Contributing |
🌏 License
Features 🎨
Displays file and directory names like ls in a text editor,
and renames or moves them exactly as you edit them.
A pre-compiled single executable without any dependencies.
Thanks 💖 to Zig and musl libc .
Supports Linux, Mac and Windows.
Supports wildcard patterns, including Windows.
Caveats ⚠
Given paths have to be convertible to UTF-8.
Collisions are detected as much as possible , but not perfectly .
Does not verify all paths such as hard links and symbolic links.
Usage 🚀
Usage: moove [OPTIONS] [PATHS]...
Arguments:
[PATHS]... Paths or wildcard patterns to move
Options:
-v, --verbose Verbose output
-s, --sort Sort in the natural order
-a, --absolute Treat as absolute paths
-d, --directory Directories themselves, not their contents
-w, --with-hidden Include hidden files
-e, --exclude-pattern <PATTERN> Exclude regular expression pattern
-c, --copy Copy without moving
-u, --dry-run Dry-run
-o, --oops Abort in case of collision (prompt as default)
-q, --quiet No output to stdout/strerr even if error
-h, --help Print help
-V, --version Print version
Displays file and directory names like ls in a text editor.
You can edit the list as you want to operate. The order of lines after editing corresponds to the original one. Empty lines will be ignored.
Operations are canceled if you close the editor without saving.
If a line starts with // , the file and directory (and its contents) will be removed regardless of modification of the remaining part of the line.
Destination directories will be created automatically.
In case of line number change or collision, asks whether to re-edit or abort. Aborts without asking if --oops is specified.
Configuration 🎚
Default command line options can be specified by the environment variable MOOVE_OPTIONS .
The default editor is searched in the following order.
environment variable VISUAL
environment variable EDITOR
hardcoded lists
platform-specific generic file openers
Getting Started 📥
Pre-compiled binaries
Install by cargo
cargo install moove
Alternatives
Contributing 💙
Followings are used to build.
Setup development environment 🪜
Install Zig according to the Zig document .
Run following commands.
cargo install cargo-make
cargo make setup
Testing and Building 🔨
To test,
cargo make test
To build binaries for release,
cargo make
Pre-compiled binaries will be in the directory dist .
⚠ Binaries do not have execute permission in case of building on windows.
TODOs ✅
Package for various platforms
Overwrite option
Exclude .gitignore option
Move to trash instead of removing as the default
Logging
Recursive option
Maximum depth option
Depth option
License 🌏
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
© 2023 Urin