GNU/Linux >> Znalost Linux >  >> Linux

Porovnání vlastníků a oprávnění obsahu dvou složek?

Ř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...


Linux
  1. Linux – Rozumíte unixovým oprávněním a typům souborů?

  2. Priorita uživatele a vlastníka skupiny v oprávněních k souboru?

  3. Jak porovnat dvě složky a zkopírovat rozdíl do třetí složky?

  1. Ssh a oprávnění k domovskému adresáři?

  2. Oprávnění a ukládání souborů?

  3. Přečtěte si, jak změnit oprávnění pro soubory a složky

  1. SAN vs. NAS:Porovnání dvou přístupů k ukládání dat

  2. Oprávnění pro Linux:SUID, SGID a sticky bit

  3. Jak porovnat obsah dvou tarballů