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
lsin a text editor, and renames or moves them exactly as you edit them. - Supports Linux, Mac, and Windows.
- Supports wildcard patterns including Windows.
- Aborts operation in case of collisions.
- Default options can be specified as environment variable
MOOVE_OPTIONS.
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 to move [default: .]
Options:
-u, --dry-run Dry-run option
-v, --verbose Verbose output
-q, --quiet No output to stdout/strerr even if error
-a, --absolute Handle 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
-h, --help Print help
-V, --version Print version
Getting Started 📥
Pre-compiled binaries
-
Download pre-compiled binaries.
-
Extract a single binary file from the archive file. For example,
-
(Recommended) Specify text editor configuring environment variable
VISUALorEDITOR. For example,
Install by cargo
Contributing 💙
Followings are used to build.
- cargo-make as the task runner
- cargo-zigbuild to build for multiple platforms
Setup building environment 🪜
- Install Zig according to the Zig document.
- Run following commands.
Building 🔨
To build binaries for supported platforms,
TODOs ✅
- Prompt re-edit when conflict
- Order option
- Recursive option
- Maximum depth option
- Depth option
- Package for various platforms
- Enable applying pipe
- Overwrite option
- Remove operation
- Create option
- Exclude .gitignore option
- Rollback option
- Log and undo
License 🌏
Licensed under either of
- Apache License, Version 2.0 or https://www.apache.org/licenses/LICENSE-2.0
- MIT license or https://opensource.org/licenses/MIT
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