#move #mv #rename

bin+lib moove

🚚 Manipulate file names and locations

15 unstable releases (4 breaking)

0.4.2 Apr 16, 2026
0.4.1 Apr 13, 2026
0.3.0 Apr 9, 2026
0.2.8 Nov 5, 2023
0.0.2 Jan 29, 2023

#443 in Filesystem

MIT/Apache

345KB
1K SLoC

moove - 🚚 Manipulate file names and locations

Version Downloads from crates.io License

moove is a command line tool for renaming and moving files and directories using a text editor.

🎨 Features | 🚀 Usage | 📥 Getting started | 💙 Contributing | 🌏 License

Demo

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.
  • 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)
  -f, --force                      Overwrite existing files without prompting
  -F, --force-dir                  Overwrite existing directories without prompting (implies --force)
  -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.
  • With --force, an existing destination file (or symlink to a file) is overwritten without prompting. Errors if the destination is a directory or a symlink to a directory.
  • With --force-dir, an existing destination directory (or symlink to a directory) is also overwritten: on move, the destination is removed and replaced; on copy, the contents are merged. Implies --force for file destinations. Errors if the source is a symlink to a directory.

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

  • Download the archive for your platform from the latest release.
  • Release assets are built automatically for Linux, macOS, and Windows.

Install by cargo

cargo install moove

Alternatives

Contributing 💙

Followings are used to build.

Testing and Building 🔨

  • To test,

    cargo make test
    
  • To build binaries for release,

    cargo make
    

    The binary for your local environment will be built in target/release.

TODOs ✅

  • Package for various platforms
  • Exclude .gitignore option
  • 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

Dependencies

~5–36MB
~520K SLoC