frs

Rename files with RegEx patterns


Keywords
rename, regex, find, rename-directories, rename-files, rust, cli, rust-lang, developer-tools
License
CNRI-Python-GPL-Compatible

Documentation

File Rename Search

MIT License Workflow Status Crates.io crev reviews

Rename files with RegEx patterns.

Demo

Usage

$ frs --help

USAGE:
    frs [FLAGS] [OPTIONS] <search-pattern> <replace-pattern> [base-path]

FLAGS:
    -i, --case-insensetive
    -c, --continue-on-error
    -d, --directory            Rename all matching directories. If no type is set, then everything will be renamed
    -n, --dry-run              This is the default and lets you run it without the actual operation
    -f, --file                 Rename all matching files. If no type is set, then everything will be renamed
    -h, --help                 Prints help information
    -r, --run                  Actually running the rename operation. If you want to set this as default, set the
                               environment variable `FRS_DEFAULT_OP` to `RUN`
    -s, --symlink              Rename all matching symlinks. If no type is set, then everything will be renamed
    -T, --traverse-tree        This traverses the Directory Tree. If set, the renaming of directories will be disabled
                               by default, to prevent the renaming of a directory and its inner files
    -V, --version              Prints version information
    -v, --verbose              Set the verbosity. In a dry-run its automatically set to 1

OPTIONS:
    -I, --icons <icons>     [env: FRS_SHOW_ICONS=]  [default: true]

ARGS:
    <search-pattern>
    <replace-pattern>
    <base-path>           [default: .]

Example

$ frs -f '([a-z]+)_(\d+)(\..+)' '${2}_${1}${3}' test_folder
test_folder/bar_02.png -> test_folder/02_bar.png
test_folder/foo_01.txt -> test_folder/01_foo.txt

Installation

Cargo

Please check, that you have a recent version of Rust installed.

$ cargo install frs

Setup

Operation Mode

The default operation is to do a dry-run. To change this behavior, you have to set the FRS_DEFAULT_OP environment variable to RUN.

Icons

Nerd Font Icons

frs is able to show Nerd Font icons. If you don't use NF in your terminal you can disable it with the --icons option or with the FRS_SHOW_ICONS environment variable. This can be done e.g. on ZSH by adding this line to your ~/.zshenv:

export FRS_SHOW_ICONS=false

CREV - Rust code reviews - Raise awareness

Please, spread this info !
Open source code needs a community effort to express trustworthiness.
Start with reading the reviews of the crates you use. Example: web.crev.dev/rust-reviews/crate/num-traits/
Than install the CLI cargo-crev. Read the Getting Started guide.
On your Rust project, verify the trustworthiness of all dependencies, including transient dependencies with cargo crev verify
Write a new review !
Describe the crates you trust. Or warn about the crate versions you think are dangerous.
Help other developers, inform them and share your opinion.
Use the helper on this webpage: web.crev.dev/rust-reviews/review_new