Solution 1 :
La solution, comme pour tout, est un script perl :
#!/usr/bin/perl
use File::Find;
my $directory1 = '/tmp/temp1';
my $directory2 = '/tmp/temp2';
find(\&hashfiles, $directory1);
sub hashfiles {
my $file1 = $File::Find::name;
(my $file2 = $file1) =~ s/^$directory1/$directory2/;
my $mode1 = (stat($file1))[2] ;
my $mode2 = (stat($file2))[2] ;
my $uid1 = (stat($file1))[4] ;
my $uid2 = (stat($file2))[4] ;
print "Permissions for $file1 and $file2 are not the same\n" if ( $mode1 != $mode2 );
print "Ownership for $file1 and $file2 are not the same\n" if ( $uid1 != $uid2 );
}
Regardez http://perldoc.perl.org/functions/stat.html et http://perldoc.perl.org/File/Find.html pour plus d'informations, en particulier le stat
un si vous voulez comparer d'autres attributs de fichier.
Si les fichiers n'existent pas dans le répertoire2 mais existent dans le répertoire1, il y aura également une sortie car le stat
sera différent.
Solution 2 :
Rechercher et stat :
find . -exec stat --format='%n %A %U %G' {} \; | sort > listing
Exécutez cela dans les deux répertoires puis comparez les deux fichiers de liste.
Vous sauve des maux de Perl...