Эффективный поиск уникальных владельцев файлов и каталогов

В конце концов, вещи хорошо работали. Был a exit в моем сценарии, который включил бы особое условие (другое выполнение программы) при начальной загрузке и не "долго" после.

2
07.05.2015, 01:30
2 ответа

Вот немного короче Версия, которая использует находку:

Найти -printf "% u \ n" | Сортировать -U

в зависимости от сложности структуры каталога это может или не может быть более эффективным.

3
27.01.2020, 21:56

Для такого рода задача мне нравится разбиться Perl. Есть модуль, называемый файл :: Найти , который является ядром, то это довольно хорошо для этого:

#!/usr/bin/perl
use strict;
use warnings;

use File::Find;

my %found;

sub collate_users {
    next if -d;
    my ($dev,  $ino,   $mode,  $nlink, $uid,     $gid, $rdev,
        $size, $atime, $mtime, $ctime, $blksize, $blocks
    ) = stat;

    if ( not $found{$uid} ) {
        print "$uid : ", getpwuid($uid),"\n";
    }
    $found{$uid}++;
}

find( \&collate_users, "/path/to/search", "/another/path/to/search" );

Это будет печать в «найденном порядке» - вы можете, если вы предпочитаете, сортировать и сортировать (по счету файлов, если вы настолько склонны) позже:

foreach my $uid ( sort { $found{$a} <=> $found{$b} } keys %found ) {
    print getpwbyuid($uid)," ($uid) has $found{$uid} files\n";
}
2
27.01.2020, 21:56

Теги

Похожие вопросы