5 releases

0.4.2 Jun 26, 2022
0.4.1 Mar 7, 2021
0.4.0 Jan 18, 2020
0.1.1 Jan 13, 2020
0.1.0 Oct 28, 2019

#902 in Filesystem

MIT license

68KB
1.5K SLoC

pmv

CI Latest version license

A command line tool to move multiple files at once, using wildcard patterns.

Features

  • Accepts wildcard patterns for selecting files to move
  • Colorized terminal output
  • Runs on Windows and Linux (may run on macOS too?)

Usage

USAGE:
    pmv.exe [FLAGS] <SOURCE> <DEST>

FLAGS:
    -n, --dry-run
            Does not move files but just shows what would be done

    -h, --help
            Prints help information

    -i, --interactive
            Prompts before moving an each file

    -V, --version
            Prints version information

    -v, --verbose
            Writes verbose message


ARGS:
    <SOURCE>
            A pattern string specifying files to move. If the
            pattern contains wildcard(s), multiple files matching
            to the pattern will be targeted. Supported wildcards
            are:

                ? ... Matches a single character
                * ... Matches zero or more characters
    <DEST>
            A pattern string specifying where to move the targeted
            files. If the pattern contains tokens like `#1` or
            `#2`, each of them will be replaced with a substring
            extracted from the targeted file path. Those substrings
            matches the wildcard patterns in SOURCE; `#1` matches
            the first wildcard, `#2` matches the second,
            respectively. For example, if SOURCE is `*_test.py` and
            DEST is `tests/test_#1.py`:

                Exisitng File | Destination
                ------------- | -----------------
                foo_test.py   | tests/test_foo.py
                bar_test.py   | tests/test_bar.py
                hoge_test.py  | tests/test_hoge.py

Installation

Cargo

cargo install pmv

Rust 1.36.0 or newer is required to build pmv.

References

Dependencies

~5–16MB
~188K SLoC