Linux – Non-recursive find on linux

backupbashfindlinuxunix

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?

Best Answer

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.