Dave, I purchased your Wicked Cool Shell Scripts book a month or so ago (great book), and have used it to “learn by example” in writing some shell scripts, as I’ve a long way to go in this area.
I need to rotate logs on an IBM AIX 5.1 Unix box, and tried using your script #55, rotatelogs for this but it didn’t work, as -maxdepth is not supported in AIX’s find command. So, I commented it out, and it worked, but also rotated everything in the subdirectories as well (no problem…backed up directory first, then restored). I am trying to get it to work using -prune which my search in Google found to be a good fix for the lack of maxdepth, but it’s not doing what I want. Help!
Hmmm… I don’t have access to an AIX Unix box, but are you sure that they don’t have a copy of GNU find tucked away somewhere on the box? Try using something like find / -name “find” -print as root to see if there’s more than one copy of the app on the system.
I’m not sure that -prune is what you want, though. Here’s what the find man page on my system says about it:
-prune This primary always evaluates to true. It causes find to not descend into the current file. Note, the -prune primary has no effect if the -d option was specified.
Is this a viable replacement for -maxdepth?
When I run it the output isn’t useful:
$ find . -prune -print . $
Hmmmm…. replacing the “.” with a “*” proves interesting (yes, I’m making the find more interesting too, just matching files that are non-zero in size):
$ find * -prune -type f -size +0c -print African Singing.aif Branding for Writers.doc GYBGCH12.doc KF BPlan-04-1123.doc Parent Night.aif Rahima Keynote.aif lumxtiger_outline final.doc master-adwords.pdf $
Maybe that’s what you need (ignore the specific files I have. You can see what I’m working on as this is my desktop.
Try what I suggested, see what kind of results you get!