I need to write a shell script that will filter out all files/directroies in a directory that are more than two months old and then copy those files to a new target location

Recommended Answers

Any reason why you can not use e.g. Python?

I would start reviewing the find command if you are using Unix or related OS. Likely as you have Korn shell.
http://www.softpanorama.org/Tools/Find/selecting_files_by_age.shtml

Jump to Post

All 2 Replies

ksh and bash are much the same critter, except that ksh is mostly Unix oriented. What OS are you running? You can also use perl or python (as mentioned by pyTony). You would probably use the 'find' command with the '-ctime' option (N*24 hours) to find the files in the time range you want, and then add the '-exec' option to 'find' to remove those files. Example (for files 3 days old):

find . -ctime 3 -exec rm -f {} \;

The find command is standard unix/linux stuff, so it should work on either system. So for files that have not been updated for at least 60 days (2 months more or less) use 60 for the -ctime option.

All that aside, do read the find command man page in detail. It will provide a lot of information about this and other options.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.