#!/usr/bin/perl # move your dotfiles to ~/etc if((! -e "$ENV{HOME}/etc") && (! -d "$ENV{HOME}/etc")){ system("mkdir $ENV{HOME}/etc"); } opendir(HOME, $ENV{HOME}) or die "Can't open $ENV{HOME}: $!"; while ( defined ($oldfile = readdir HOME) ) { next if $oldfile =~ /^\.\.?$/; # skip . and .. next unless $oldfile =~ /^\./; # skip . and .. next if (-l $oldfile); # we don't want recursive symlinks $newfile = $oldfile; $newfile =~ s/^\.//g; system("mv $ENV{HOME}/$oldfile $ENV{HOME}/etc/$newfile"); system("ln -s $ENV{HOME}/etc/$newfile $ENV{HOME}/$oldfile"); } closedir(HOME);