Řešení 1:
Řešením, stejně jako u všech věcí, je 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 );
}
Podívejte se na http://perldoc.perl.org/functions/stat.html a http://perldoc.perl.org/File/Find.html pro více informací, zejména stat
jeden, pokud chcete porovnat další atributy souborů.
Pokud soubory neexistují v adresáři2, ale existují v adresáři1, bude také výstup, protože stat
bude jiný.
Řešení 2:
Najít a statistiky:
find . -exec stat --format='%n %A %U %G' {} \; | sort > listing
Spusťte to v obou adresářích a poté porovnejte dva soubory výpisu.
Zachrání vás před zlem Perlu...
Jak nastavit shmall, shmmax, shmmin atd ... obecně a pro postgresql
CentOS /usr/local/lib pro celý systém $LD_LIBRARY_PATH?