Lösung 1:
Die Lösung ist, wie bei allen Dingen, ein Perl-Skript:
#!/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 );
}
Weitere Informationen finden Sie unter http://perldoc.perl.org/functions/stat.html und http://perldoc.perl.org/File/Find.html, insbesondere unter stat
eine, wenn Sie andere Dateiattribute vergleichen möchten.
Wenn Dateien nicht in Verzeichnis2, aber in Verzeichnis1 existieren, wird auch dort ausgegeben, weil stat
wird anders sein.
Lösung 2:
Finden und Statistik:
find . -exec stat --format='%n %A %U %G' {} \; | sort > listing
Führen Sie das in beiden Verzeichnissen aus und vergleichen Sie dann die beiden Auflistungsdateien.
Bewahrt Sie vor den Übeln von Perl...