php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/usermin/file/ |
files >> //usr/libexec/usermin/file/size.cgi |
#!/usr/bin/perl # size.cgi # Returns the size in bytes, number of files and number of dirs in a directory require './file-lib.pl'; &ReadParse(); &switch_acl_uid_and_chroot(); print "Content-type: text/plain\n\n"; if (!&can_list($in{'dir'})) { print $text{'list_eaccess'},"\n"; } ($size, $files, $dirs) = &recursive_dir_info($in{'dir'}); print "\n"; print $size," ",$files," ",$dirs," ",&nice_size($size),"\n"; # recursive_dir_info(directory) sub recursive_dir_info { local $dir = &translate_filename($_[0]); if (-l $dir) { # Symlink return (0, 1, 0); } elsif (-f $dir) { local @st = stat($dir); return ($st[7], 1, 0); } elsif (-d $dir) { local @st = stat($dir); local ($size, $files, $dirs) = ($st[7], 0, 1); opendir(DIR, $dir); local @files = readdir(DIR); closedir(DIR); foreach my $f (@files) { next if ($f eq "." || $f eq ".."); local @r = &recursive_dir_info("$dir/$f"); $size += $r[0]; $files += $r[1]; $dirs += $r[2]; } return ($size, $files, $dirs); } else { # Special file .. return (0, 1, 0); } }y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`