#!/usr/bin/perl -w # use pragmas ##### # use diagnostics; use strict; # use modules ##### use File::Find; use File::Basename; # Declare variables; ##### my $file; my %count; my @total_files; # Make sure command line argument is supplied ##### die "No command line arguments: $!\n" unless @ARGV; # wanted subroutine for File::Find ##### sub wanted { $file = $File::Find::name; if (basename($file) =~ /^\.$|^\.\.$|^\.DS/) { next; } # .DS_ for Mac OS parse push(@total_files, $file = basename($file)); } # process @ARGV ##### find(\&wanted, @ARGV); # create hash for basename file seen count ##### foreach $file(@total_files) { $count{$file} += 1; } # print to STDOUT any file not seen 2 or more times ##### foreach $file (keys %count) { if($count{$file} < 2) { print "SYNC this file: $file \n"; #### } } # for STDOUT format cleanliness ##### print "\n";