
:
#######################################################
# prog4 - list all files that have probably not been 
# accessed since they were put on the system; that is, 
# all files with access time equal to change time.  if 
# atime is the same as ctime then it's a good bet that 
# no one has used the file.
#
# see prog4a for information on limiting the search; for 
# example, only displaying files that have not been used 
# in the past six months, in the past two years, etc.
#
# we only need to look at ctime and atime because if 
# mtime is changed ctime is changed too.
#
# atime - Time when file data was last accessed.  
#         Changed by the following system calls:
# 
#     creat, mknod, pipe, utime, and read.
# 
# mtime - Time when data was last modified.  Changed by 
#         the following system calls:
# 
#     creat, mknod, pipe, utime, and write.
# 
# ctime - Time when file status was last changed.  
#         Changed by the following system calls:
# 
#     creat, mknod, pipe, utime, and write,
#         and chmod, chown, link, unlink.

find / -type f -print |
stat -aACn - |
# 2 examples of limiting date range.
# awk "{ if ( \$6 < date ) print; } date=$decimal_date" |
# egrep 1993 |
awk '
{
    # day month dayofmonth time year

    atime=sprintf("%s %s %s %s %s", $1, $2, $3, $4, $5)

    Atime=$6
    Ctime=$7

    fn=$8

    if ( Atime == Ctime )
        printf("%s %s\n", fn, atime)
}'
exit 0

