Skip to content
/ bmv Public

bulk rename files from stdin. drop-in mv replacement.

License

Notifications You must be signed in to change notification settings

abenz1267/bmv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BMV - Bulkmove

Wrapper around mv which allows bulk operations via stdin.

bmv will also create missing directories and cleanup directories that became empty in the process. Both are configurable via flags.

Features

  • bulk renaming via stdin
  • rename file(s) in editor ($EDITOR)
  • define processor for renaming, f.e. sed
  • create missing directories on the fly
  • delete directories that became empty after moving
  • drop-in replacement for mv: args/flags will be passed to mv
  • handles circular renaming

Installation

# Arch
yay -S bmv
yay -S bmv-bin

# via Go
go install github.com/abenz126/bmv@latest

mv instance being used is /usr/bin/mv, unless $BMV_MV is specified.

Usage

# normal 'mv' actions, simply passed to 'mv':
bmv oldfile newfile

# bmv specific:
<2 column output from external [src dest\n]> | bmv
fzf -m | bmv -e # defaults to $EDITOR
fzf -m | bmv -e=vim
ls | bmv -p sed 's/old/new/'
bmv -p sed 's/old/new/' # implicit call to 'ls'
bmv # same as 'ls | bmv -e'