I want to find all files that are:

  • recent
  • do not end in .class
  • no directories

This is what I have attempted but it is not working:

find . \( -atime -1 -a \! -type d -a \! -name '.class' \) -ls

I simplified it to this:

find . -atime -1 -ls

But it is still picking up things from January and earlier. What is going wrong here?


You probably want either -mtime or -ctime. -atime checks the access time, which includes accessing the file metadata. So doing a ls (or a find -atime) will update the access time. -mtime is the time the file contents were last modified and -ctime is the last time the "status" was changed, which I think is the file metadata (permissions, etc).


Solutions use:

find . -ctime -1 -ls

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.