Linux
比較兩個文件夾內容的所有者和權限?
如何比較兩個文件夾內容的所有者和權限?是否有類似
diff
命令遞歸比較兩個文件夾並顯示所有者和權限差異的東西?
與所有事情一樣,解決方案是一個 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
如果您想比較其他文件屬性的資訊。如果文件在directory2中不存在但在directory1中存在,也會有輸出,因為
stat
會有所不同。