NAME
Filesys::DiskUsage - Estimate file space usage (similar to `du`)
SYNOPSIS
use Filesys::DiskUsage qw/du/;
# basic
$total = du(qw/file1 file2 directory1/);
or
# no recursion
$total = du( { recursive => 0 } , <*> );
or
# max-depth is 1
$total = du( { 'max-depth' => 1 } , <*> );
or
# get an array
@sizes = du( @files );
or
# get a hash
%sizes = du( { 'make-hash' => 1 }, @files_and_directories );
FUNCTIONS
du
Estimate file space usage.
Get the size of files:
$total = du(qw/file1 file2/);
Get the size of directories:
$total = du(qw/file1 directory1/);
OPTIONS
- blocks
-
Return the size based upon the number of blocks that the file occupies, rather than the length of the file. The two values might be different if the file is sparse.
This value should match more closely the value returned by the du(1) command.
$total = du( { blocks => 1 } , $dir );
- dereference
-
Follow symbolic links. Default is 0. Overrides
symlink-size
.Get the size of a directory, recursively, following symbolic links:
$total = du( { dereference => 1 } , $dir );
- exclude => PATTERN
-
Exclude files that match PATTERN.
Get the size of every file except for dot files:
$total = du( { exclude => qr/^\./ } , @files );
- human-readable
-
Return sizes in human readable format (e.g., 1K 234M 2G)
$total = du ( { 'human-readable' => 1 } , @files );
- Human-readable
-
Return sizes in human readable format, but use powers of 1000 instead of 1024.
$total = du ( { 'Human-readable' => 1 } , @files );
- make-hash
-
Return the results in a hash.
%sizes = du( { 'make-hash' => 1 } , @files );
- max-depth
-
Sets the max-depth for recursion. A negative number means there is no max-depth. Default is -1.
Get the size of every file in the directory and immediate subdirectories:
$total = du( { 'max-depth' => 1 } , <*> );
- recursive
-
Sets whether directories are to be explored or not. Set to 0 if you don't want recursion. Default is 1. Overrides
max-depth
.Get the size of every file in the directory, but not directories:
$total = du( { recursive => 0 } , <*> );
- sector-size => NUMBER
-
All file sizes are rounded up to a multiple of this number. Any file that is not an exact multiple of this size will be treated as the next multiple of this number as they would in a sector-based file system. Common values will be 512 or 1024. Default is 1 (no sectors).
$total = du( { sector-size => 1024 }, <*> );
- show-warnings => 1 | 0
-
Shows warnings when trying to open a directory that isn't readable.
$total = du( { 'show-warnings' => 0 }, <*> );
1 by default.
- symlink-size => NUMBER
-
Symlinks are assumed to be this size. Without this option, symlinks are ignored unless dereferenced. Setting this option to 0 will result in the files showing up in the hash, if
make-hash
is set, with a size of 0. Setting this option to any other number will treat the size of the symlink as this number. This option is ignored if thedereference
option is set.$total = du( { symlink-size => 1024, sector-size => 1024 }, <*> );
- truncate-readable => NUMBER
-
Human readable formats decimal places are truncated by the value of this option. A negative number means the result won't be truncated at all. Default if 2.
Get the size of a file in human readable format with three decimal places:
$size = du( { 'human-readable' => 1 , 'truncate-readable' => 3 } , $file);
AUTHOR
Jose Castro, <cog@cpan.org>
COPYRIGHT & LICENSE
Copyright 2004 Jose Castro, All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.