GNU/Linux >> Belajar Linux >  >> Linux

Membandingkan pemilik dan izin konten dari dua folder?

Solusi 1:

Solusinya, seperti semua hal lainnya, adalah skrip 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 );
}

Lihatlah http://perldoc.perl.org/functions/stat.html dan http://perldoc.perl.org/File/Find.html untuk info lebih lanjut, khususnya stat satu jika Anda ingin membandingkan atribut file lainnya.

Jika file tidak ada di direktori2 tetapi ada di direktori1, juga akan ada keluaran karena stat akan berbeda.

Solusi 2:

Temukan dan stat:

find . -exec stat --format='%n %A %U %G' {} \; | sort > listing

Jalankan itu di kedua direktori lalu bandingkan kedua file daftar tersebut.

Menyelamatkan Anda dari kejahatan Perl...


Linux
  1. Apa itu `S_ISREG()`, dan apa fungsinya?

  2. Sinkronkan dua folder lokal di bash

  3. Izin default pada direktori home Linux

  1. SAN vs. NAS:Membandingkan dua pendekatan untuk penyimpanan data

  2. Izin Linux:SUID, SGID, dan sticky bit

  3. Bagaimana Membandingkan Dua Folder Dan Salin Perbedaannya Ke Folder Ketiga?

  1. Ssh Dan Izin Direktori Rumah?

  2. Izin File Dan Menyimpan?

  3. Apa itu Kurasi Konten dan bagaimana cara melakukannya?