Someone asked a while back about a perl script to delete old player files. A very similar question was just asked in comp.lang.perl.misc :) Hugh <hnews@harvest-lodge.demon.co.uk> wrote in article <880492908.29258.0.nnrp-02.c2de48f0@news.demon.co.uk>... > I am having difficulty writing an efficient script to delete all files > in a preset directory over a certain age. If a file is older than 14 > days I want to delete it. There are likely to be upwards of a couple > of thousand or so files in the directory. How is the best way to check > the create dates and delete if appropriate. As I said there is no need > to recurse subdirs as they won't exist. All files to be deleted will > have a .ABC suffix, the routine should ignore files without this. > > Thanks > > Hugh > Hugh@harvest-lodge.demon.co.uk #!/bin/sh TOP_DIR=/home/hugh/temp_files find $TOP_DIR -name '*.ABC' -mtime +14 -print | perl -nle 'unlink;' (From the FAQ!!!!!) Should do the trick..... It will recurse if there are any sub directories The 'all perl' way to do it would be something like: opendir (MYDIR, "$DIRECTORY_NAME"); foreach $file (grep(/\.ABC$/, readdir(MYDIR))) { unlink $file if -M $file > 14; } James Richardon > +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST