Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Ren - Rename Files Interactively

DZone's Guide to

Ren - Rename Files Interactively

·
Free Resource
You may change the path to your editor...

Mine's usually /usr/bin/vim - but /bin/vi is often symlinked to that if it's installed...


#!/usr/bin/perl
#
# ren - rename files interactively
# John Harrison
# 14 August 2006 - from shell version
#
use warnings;
use strict;

use File::Glob qw(:globally :nocase);
use File::Copy;

my $editor = '/bin/vi';

my @files = @ARGV;

die "Usage: $0 FILES\n" unless ($#files >= 0);

print join( $/, @files ), $/;

for my $file (@files) {

    my $tmp = '/tmp/ren.' . $$;

    die "Can't write to '$tmp': $!\n" unless open( TMP, ">$tmp" );

    print TMP "$file";

    close TMP;

    system("$editor $tmp");

    die "Can't read '$tmp': $!\n" unless open( TMP, $tmp );

    chomp( my $new = 
  
    );

    close TMP;

    if ( $new eq $file ) {

        print "'$file': No change.\n";

    }
    elsif ( -f $new ) {

        print "'$new': Already exists.\n";

    }
    else {

        die "Can't rename '$file' to '$new': $!\n" unless move( $file, $new );

        print "mv '$file' -> '$new'\n";
    }

    unlink $tmp;

}

  
Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}