#! /usr/bin/perl sub offset_by { $i = $_[0]; for ($i; $i>=0; $i--) { $_[1] .= " "; } } sub check_off { $j = $_[0] - length($_[1]); if ($j >= 0) { offset_by($j, $_[1]); } } print "hln File mode blk owner group size\n"; print "==============================================================\n"; @oa=(3, 22, 34, 38, 47, 56); foreach $f (@ARGV) { if (-e $f) { @m=stat($f); $ofmt = "@m[3]"; check_off($oa[0], $ofmt); $ofmt .= "$f"; check_off($oa[1], $ofmt); ((@m[2] & 0010000) && ($ofmt .= "p"))|| ((@m[2] & 0020000) && ($ofmt .= "c"))|| ((@m[2] & 0040000) && ($ofmt .= "d"))|| ((@m[2] & 0060000) && ($ofmt .= "b"))|| ((@m[2] & 0100000) && ($ofmt .= "-"))|| ((@m[2] & 0120000) && ($ofmt .= "l"))|| ((@m[2] & 0140000) && ($ofmt .= "s"))|| ($ofmt .= "-"); ((@m[2] & 00400) && ($ofmt .= "r")) || ($ofmt .= "-"); ((@m[2] & 00200) && ($ofmt .= "w")) || ($ofmt .= "-"); ((@m[2] & 00100) && ($ofmt .= "x")) || ($ofmt .= "-"); ((@m[2] & 00040) && ($ofmt .= "r")) || ($ofmt .= "-"); ((@m[2] & 00020) && ($ofmt .= "w")) || ($ofmt .= "-"); ((@m[2] & 00010) && ($ofmt .= "x")) || ($ofmt .= "-"); ((@m[2] & 00004) && ($ofmt .= "r")) || ($ofmt .= "-"); ((@m[2] & 00002) && ($ofmt .= "w")) || ($ofmt .= "-"); ((@m[2] & 00001) && ($ofmt .= "x")) || ($ofmt .= "-"); check_off($oa[2], $ofmt); $ofmt .= " @m[12]"; check_off($oa[3], $ofmt); $ofmt .= (getpwuid(@m[4])); check_off($oa[4], $ofmt); $ofmt .= (getgrgid(@m[5])); check_off($oa[5], $ofmt); $ofmt .= " @m[7] "; print "$ofmt\n"; } }