-- original homepage

sourceforge site

cvs area





-- filesystem "unixier"

Polymorph was written after I started downloading images from Usenet.

Many, many filenames were mangled by MS Outlook and other, less caring, newsagents. There were files with goofy names like C:\\PIX\\HUBBLE\\Eagle\ Nebula\ 0532.JPG and this, of course, is unacceptable. This program looks in the current working directory and finds goofy filenames like this. It then renames the file after converting all the characters to lowercase and trimming the cruft from the original. The previous example turned out to have the name eagle_nebula_0532.jpg which is much more useful.

There are a number of commandline switches. You can make polymorph convert hidden file's names, but it normally ignores them. You can make polymorph track symlinks down, or just re-name the link portion.

As always, if you have any suggestions, let me know.

the code:

Here's the latest source code: polymorph-0.4.0.tar.gz. (~46kb)

Here's the latest ChangeLog.

Any older versions are kept here:

CVS access

You can get your mits on the bleeding-edge version of polymorph from the cvs archive. Please read the warning posted at the bottom of this page, and use good sense when modifying this program!

I'm pretty open to suggestions and code snippets. Let me know if you'd like to see new or different features. Have fun!


  • re-write of filesystem traversal code
  • filetype sorter
  • configuration file parser

I would like to make polymorph traverse directories recursively. Let's assume you have a directory set up like this:


To clean everything up, just cd ~/images RET and call golem with the recursive switch with polymorph -r. Polymorph should be smart enough not to get caught in an infinite loop where there's a directory symlinked back on itself...


It should be noted that the polymorph can cause quite a bit of damage to your filesystem, if used incorrectly. This program renames files automatically with great abandon and terrible speed! If you tinker with the source before compiling, there could be consequences beyond the ken of Mortal Man and All-Knowing Sysadmin.

Remember; polymorph is released under the GNU Public License. There's no warranty of any kind if there is a problem. You're accepting responsibility by downloading and compiling the program. This does NOT mean I'm unsympathetic. I'll do what I can to help fix the program, but there's nothing I can do for your filesystem. That's what backups are for!

kahlage -- please use my PGP public key when possible
Last modified: Sun Jul 8 11:56:23 CDT 2001