I have written this script because I am maintaining a little set of Perl libraries and tools at work, and I'm modifying the installed files on my PC. To avoid erasing it with old versions from CVS, I have the CVS repository elsewhere, and this little script is giving me which file is different from the repository in my current installation
I know the code is not error proof, but it does the work, and it's all I need
use strict; use File::Path; use File::Find; my $repodir='D:\Documents\Works\Perl\Perl tools\repository\amaPerl'; my $instdir='D:\AmaPerl'; my %options; $options{'wanted'}=\&compare_files; $options{'no_chdir'}=1; find(\%options, ($repodir)); exit(0); sub compare_files { return if($_ eq '.' || $_ eq '..' || $File::Find::dir =~ /CVS/); if(-f $File::Find::name) { my $file=substr($File::Find::name,length($repodir)+1); my $other_file=$instdir."\\".$file; if(! -f $other_file) { print "$file not found installed...\n"; } else { system("diff -q \"$File::Find::name\" \"$other_file\" > NU +L"); if($?) { print "$file is different\n"; } } } }
In reply to [Win] Compare files between two directories (and subdir) by jeepj
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |