Thread Verzeichnisbaum mit Volumen (4 answers)
Opened by Peter at 2013-01-13 14:51

Linuxer
 2013-01-14 11:38
#164920 #164920
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hier ein einfacher Schnellschuß, der auf Linux laufen sollte (und die Linux-Tools tree und du benutzt):

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /usr/bin/perl
use strict;
use warnings;

# Pfade und Optionen der benutzten Tools
my %cmd = (
    tree    => '/usr/bin/tree -df',
    du      => '/usr/bin/du -sh'
);



# Hilfsroutine, um die Groesse des gegebenen Verzeichnisses zu ermitteln
sub add_size {
    my $dir = shift;

    if ( my $result = qx{ $cmd{du} $dir } ) {
        chomp $result;
        $result = join "    ", reverse( split( m{\s+}, $result, 2 ) );

        return $result . "\n";
    }
    else {
        warn "'$cmd{du} $dir' failed: $!\n";
        return $dir;
    }
}

for my $dir ( @ARGV ) {

    open my $pipe, '-|', "$cmd{tree} $dir"    or die "pipe to $cmd{tree} failed: $!\n";

    while ( my $line = <$pipe> ) {

        $line =~ s{(\Q$dir\E.+)\n}{add_size($1)}xe;
        print $line;
    }

    close $pipe;
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Verzeichnisbaum mit Volumen