🚚

massrenのRustによる再実装 🚚 moove

2023/02/27に公開

普段使っていたlaurent22/massrenのWindows版配布がなくなり、更新もしばらく止まっていたのでRustの勉強も兼ねて再実装してみた。

https://github.com/urin/moove#moove----manipulate-file-names-and-locations

デモ

mooveの特徴 🎨

  • ファイルやディレクトリをlsのような形でテキストエディタ上に表示して、変更された内容の通りにファイルを移動したりリネームしたりする。
  • 依存関係のない単一の実行ファイルとして配布。
  • Linux、Mac、Windowsをサポート。
  • Windowsでも柔軟なワイルドカードによる指定が可能。
  • テキストエディタに表示する行をNatural orderで並べることができる。

注意点 ⚠

  • パスに含まれる文字はUTF-8に変換可能でなければならない。
  • ファイル操作の衝突などについては可能な限り検出するようになっているが完全ではない
    全てのハードリンク、シンボリックリンクなどの検証をするわけではない。

使用方法 🚀

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
  • ファイルやディレクトリをlsのような形でテキストエディタ上に表示する。
  • テキストエディタに最初に表示された順序を崩さないように編集する。空行は無視される。
  • 変更を保存せずにテキストエディタを閉じた場合は何もしない。
  • 行頭が//で始まる場合、その行の変更内容に関わらずそのファイルもしくはディレクトリを削除する。ゴミ箱には入らない。
  • 移動先のディレクトリが存在しない場合は自動的に作成する。
  • 行数が変更されたり、操作の衝突を検出した場合はユーザに再編集するか中止するかを問い合わせる。--oopsオプションを使うと問い合わせなく中止する。

設定 🎚

  • デフォルトのコマンドラインオプションは環境変数MOOVE_OPTIONSに指定できる。
  • 使用されるエディタは以下の順序で検索される。
    • 環境変数VISUAL
    • 環境変数EDITOR
    • ハードコードされたテキストエディタ一覧
    • OSデフォルトのテキストエディタ

インストール 📥

実行ファイル

Rustソースからビルドする場合

cargo install moove

最後に

要望・バグなどあればIssueをお願いします。

Discussion