moove is a command line tool for renaming and moving files and directories using a text editor.
π¨ Features | π Usage | π₯ Getting started | π Contributing | π License
- Displays file and directory names like
lsin 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.
- 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.
- Operations are validated case-sensitively whatever the platform is.
Usage: moove [OPTIONS] [PATHS]...
Arguments:
[PATHS]... Paths or wildcard patterns to move
Options:
-v, --verbose Verbose output
-s, --sort Sort in 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
lsin a text editor. - You can edit the list as you want to operate. The order of lines 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 will be removed regardless modification of the remaining part of the line. - Intermediate directories will be created if you modify its ancestor directories.
- In case of line number change or collision, asks whether to re-edit or abort. Aborts without asking if '--oops' is specified.
- Default command line options can be specified by environment variable
MOOVE_OPTIONS. - Default editor is searched in following order.
- environment variable
VISUAL - environment variable
EDITOR - hardcoded lists
- platform-specific generic file openers
- environment variable
- moove-apple-aarch64.tar.gz
- moove-apple-x86_64.tar.gz
- moove-linux-aarch64.tar.gz
- moove-linux-x86_64.tar.gz
- moove-windows-x86_64.tar.gz
cargo install mooveFollowings are used to build.
- cargo-make as the task runner
- cargo-zigbuild to build for multiple platforms
- Install Zig according to the Zig document.
- Run following commands.
cargo install cargo-make
cargo make setup-
To test,
cargo make test
-
To build binaries for release,
cargo make
Pre-compiled binaries will be in the directory
dist.β Binaries does not have execute permission in case of windows.
- Add demos to README
- Package for various platforms
- Overwrite option
- Exclude .gitignore option
- Recursive option
- Maximum depth option
- Depth option
- Ignore case in case of Windows
- Log and undo
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