7

I am trying to find all directories that are directly inside the current directory and older than a specific age. The trick is, I only want to consider the age of the immediate descendants of the current directory, and not search through them recursively.

Usage example is for daily backups of files - a new directory is created every day, but the files placed inside that directory keep their timestamps and are often older. I want to be able to clean up old backups without deleting the old files in more recent snapshots.

It looks like find may not be able to do this, what unix tool (or a combination of them) do you recommend?

3 Answers 3

18

You can you -maxdepth and -mindepth with your modified/accessed/changed attribute search of choice, i.e.

find -maxdepth 1 -mtime 4

for 4 days.

Don't forget to exclude the . and .. results that find returns.

Useful link to many find examples.

2
  • Thanks. I tried that option (maxdepth) before, but used it incorrectly. Now this works!
    – SaltyNuts
    Commented May 19, 2011 at 18:32
  • I think it would be -mtime +4 for older than 4 days rather than exactly 4 days.
    – Duke
    Commented Sep 17, 2012 at 7:03
4

You're looking for the -maxdepth and -mindepth options.

1

find will work fine. Just add -maxdepth 1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .