I saw this node this morning and I thought right off that
find(1) did something like this natively.. it does catch the files last accessed or created within a time frame and execute a command, but I couldn't figure out how to delete everything that was older than the 10 newest. (for the curious it's:
find ./ -type f -atime +7 -exec rm {} \;)
but hey, since you can tack commands into find..
find ./ -type d -exec perl -e '$limit="11";$dir="{}";$i=0;@list=`ls -ltF $dir`;print "Directory: $dir\n";foreach(@list) {chomp;$ls="$_";if (($ls=~ m/\//o) ne 1) {if (($i < $limit) && (($ls=~ m/total/o) ne 1) && (($ls=~ m/@/o) ne 1)) {print "keep $ls\n";} elsif ($i > ($limit-1)) {print "rm $ls\n";};} else {$i=($i-1);};$i++;};' {} \;
ooogly, eh? and yeah, it's set up for testing.. no actual rm'ing going on.. but that's easy enough to fix.
this was my fun activity for today.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.