GNU/Linux >> Linux の 問題 >  >> Linux

2 つのフォルダーのコンテンツの所有者とアクセス許可を比較しますか?

解決策 1:

解決策は、すべてのものと同様に、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 );
}

詳細については http://perldoc.perl.org/functions/stat.html および http://perldoc.perl.org/File/Find.html を参照してください。特に stat 他のファイル属性を比較したい場合は 1 つ。

ファイルが directory2 に存在せず、directory1 に存在する場合、stat

解決策 2:

検索と統計:

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

それを両方のディレクトリで実行し、2 つのリスト ファイルを比較します。

Perl の悪からあなたを救います...


Linux
  1. Linux – Unixのアクセス許可とファイルタイプを理解していますか?

  2. ファイルパーミッションにおけるユーザーとグループ所有者の優先順位?

  3. 2つのフォルダを比較し、違いを3番目のフォルダにコピーする方法は?

  1. ファイルのアクセス許可と保存?

  2. 新しいユーザーを作成し、MySQLで権限を付与します

  3. `S_ISREG()` とは何ですか?

  1. Linuxユーザーと権限のチートシート

  2. コマンドラインからアクセス許可と所有者を変更する方法

  3. Linux ホーム ディレクトリに対するデフォルトの権限