Regular Expression Move

Status of This Project

"Release early, release often" is a widely adopted strategy for open source projects. Well, this one here has been sitting in the dark corners of my home computer for the better part of one year, untouched. It seems as if I weren't working on this anymore.

Nevertheless I still think it's a good idea and keep up the good spirits by finally releasing it to the public. In case there is anyone interested in doing the last smaller steps to finish this...

Now, the logic is pretty much done, most of the code has been written. The one thing missing is testing if it really works and then commenting in the line which will do the actual copy or move.

What it does

This program goes through a list of files (recursing directories if desired and filtering the list) and applies a regular expression to it. The result is a translation table which will be printed. Yes, no moving or copying is done in default mode. Regular Expressions can get hairy and we don't want to loose our files, don't we?

You can then call it with another option set to do the real job.


The programm ships with a built in documentation. Call it with --help for a short explanation and with --man for the complete manpage.

Last Warning

One final time: This is alpha software! I needs testing! It is not (yet) for daily use! You have been warned!


"I'm a tough one. Gimme the source, man!" Here you go. Download remv from

There is another version which has an expirmental solution for resolving conflicts in the translation table, but wich lacks other features. It's called remv2 in the download directory.

What I would do

If I'll ever take on this project again, I will definetely remove the recursion and filetering code. This can and should be done using programs like find and ls. Doing this myself is only calling for pain. Then everything else should be easy and straightforward since you already got a full list of files: apply a perl statement (not necessarily a regexp, could be anything) to the list to create the translation table, store it to the file, finish. One could even go so far as to create a shell script using cp and mv which can be checked, double checked and then executed. In this case aliases of a user like alias cp='cp -i' would still be active. Of course one would loose portability down that path.