Listing 6: prog3
:
#######################################################
# prog3 - list the 10 oldest (or newly created) files,
# by user. sort in reverse order to list the newest.
#######################################################
# see also mklist
find / -type file -print |
stat -idmMupsn - |
awk '{
inum=$1
device=$2
# the [constructed] idnum must be used when scanning
# multiple file systems in order to uniquely
# identify the file.
idnum=sprintf("%s %s", inum, device)
uid=$3
fsize=$4
day=$5
month=$6
dayofmonth=$7
time=$8
year=$9
access=sprintf("%s %s %s %s %s",
day, month, dayofmonth, time, year)
Atime=$10
fname=$11
# do not recount linked files
if ( unique[ idnum ] != 1 )
printf("%8s %s %10d %s %s\n", uid,
Atime, fsize, access, fname)
unique[ idnum ] = 1
}' |
sort |
# use the -r flag to list the newest instead of the
# oldest.
# sort -r |
awk 'BEGIN {
max_count=10 # list only 10 files for each user
count=1
}
{
cur_id=$1
if ( cur_id == last_id )
count += 1
else
count=1
if ( count < max_count )
print
last_id=cur_id
}'
exit 0
|