GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comparando propietarios y permisos de contenido de dos carpetas?

Solución 1:

La solución, como con todas las cosas, es 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 );
}

Mire http://perldoc.perl.org/functions/stat.html y http://perldoc.perl.org/File/Find.html para obtener más información, particularmente el stat uno si desea comparar otros atributos de archivo.

Si los archivos no existen en el directorio 2 pero existen en el directorio 1, también habrá una salida porque el stat será diferente.

Solución 2:

Encuentra y estadística:

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

Ejecute eso en ambos directorios y luego compare los dos archivos de listado.

Te salva de los males de Perl...


Linux
  1. Hoja de trucos para usuarios y permisos de Linux

  2. Cómo cambiar permisos y propietarios a través de la línea de comandos

  3. SAN frente a NAS:comparación de dos enfoques para el almacenamiento de datos

  4. ¿Precedencia del propietario del usuario y del grupo en los permisos de archivo?

  5. ¿Ssh y permisos de directorio de inicio?

Ahorre espacio comprimiendo archivos y carpetas en Linux

¿Qué es la Curación de Contenidos y cómo se debe hacer?

Cómo instalar y proteger Memcached en Ubuntu 18.04

Crear un nuevo usuario y otorgar permisos en MySQL

Comparando dos archivos en la terminal de Linux

¿Qué es `S_ISREG()` y qué hace?