Sponsored Content
Top Forums Shell Programming and Scripting Script to delete files older than x days and also taking an input for multiple paths Post 302711135 by alister on Friday 5th of October 2012 12:29:38 PM
Old 10-05-2012
Quote:
Originally Posted by Don Cragun
Code:
saveIFS="$IFS"
IFS=""
while read dir

Don, is there a reason to not simply override IFS in read's environment? Also, I may be overly paranoid, but I use -r to defend against backslashes.
Code:
while IFS= read -r dir ...

Regards,
Alister

---------- Post updated at 12:29 PM ---------- Previous update was at 12:05 PM ----------

Quote:
Originally Posted by Don Cragun
Code:
find $(cat dirlist.txt) -type d ! -name . -prune -o -mtime +$Num_days -name "*.csv" -exec rm {} \;

Code:
saveIFS="$IFS"
IFS=""
while read dir
do find "$dir" -type d ! -name . -prune -o -mtime +$Num_days -name '*.csv' -exec rm {} \;
done < dirlist.txt
IFS="$saveIFS"

Because of -name . -prune not matching the current path, neither of those will work correctly.

A cd fixes the second suggestion:
Code:
while IFS= read -r d; do
(
    cd "$d" &&
    find . -type d ! -name . -prune -o -mtime +$Num_days -name '*.csv' -exec rm {} \;
)
done < dirlist.txt

If the paths are absolute, the subshell isn't needed.

An unwieldy solution that doesn't cd:
Code:
while IFS= read -r d; do
    find "$d" -type d \( -name "${d##*/}" -exec test "$d" = {} \; -o -prune \) -o -mtime +$Num_days -name '*.csv' -exec rm {} \;
done < dirlist.txt

For find implementations which support a -maxdepth primary (GNU, *BSD, etc) which simplifies restricting the traversal:
Code:
while IFS= read -r d; do
    find "$d" -maxdepth 1 -mtime +$Num_days -name '*.csv' -exec rm {} \;
done < dirlist.txt

Regards,
Alister

Last edited by alister; 10-05-2012 at 01:50 PM..
These 2 Users Gave Thanks to alister For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

delete files older than 7 days

can anyone tell me how I would write a script in ksh on AIX that will delete files in a directory older than 7 days? (1 Reply)
Discussion started by: lesstjm
1 Replies

2. UNIX for Dummies Questions & Answers

How can I delete files older than 7 days?

I will like to write a script that delete all files that are older than 7 days in a directory and it's subdirectories. Can any one help me out witht the magic command or script? Thanks in advance, Odogboly98:confused: (3 Replies)
Discussion started by: odogbolu98
3 Replies

3. UNIX for Dummies Questions & Answers

Delete files older than 30 days

This is driving me crazy. How can I delete files in a specifc directory that are over 30 days old? Thanks in advance. (3 Replies)
Discussion started by: tlphillips
3 Replies

4. Shell Programming and Scripting

delete files more than 15 days older

i have to delete files which are older than 15 days or more except the ones in the directory Current and also *.sh files i have found the command for files 15 days or more older find . -type f -mtime +15 -exec ls -ltr {} \; but how to implement the logic to avoid directory Current and also... (3 Replies)
Discussion started by: ali560045
3 Replies

5. Shell Programming and Scripting

Delete files older than 2 days using shell script in Unix

I'm new to shell script.... can any one help... What is the shell script to delete the files older than 2 days ? (3 Replies)
Discussion started by: satishpabba
3 Replies

6. Solaris

Delete files older than 30 days

Hi all, I want to delete log files with extension .log which are older than 30 days. How to delete those files? Operating system -- Sun solaris 10 Your input is highly appreciated. Thanks in advance. Regards, Williams (2 Replies)
Discussion started by: William1482
2 Replies

7. Shell Programming and Scripting

Delete files older than X days.

Hi All, I am using below code to delete files older than 2 days. In case if there are no files, I should log an error saying no files to delete. Please let me know, How I can achive this. find /path/*.xml -mtime +2 Thanks and Regards Nagaraja. (3 Replies)
Discussion started by: Nagaraja Akkiva
3 Replies

8. Shell Programming and Scripting

Script to delete files in a folder older than 2 days

hi i need a script to delete the files older than 2 days... if my input is say in a folder versions A_14122012.txt A_15122012.txt A_16122012.txt A_17122012.txt i want my output to be A_16122012.txt A_17122012.txt thanks in advance hemanth saikumar. (2 Replies)
Discussion started by: hemanthsaikumar
2 Replies

9. Shell Programming and Scripting

Find files not matching multiple patterns and then delete anything older than 10 days

Hi, I have multiple files in my log folder. e.g: a_m1.log b_1.log c_1.log d_1.log b_2.log c_2.log d_2.log e_m1.log a_m2.log e_m2.log I need to keep latest 10 instances of each file. I can write multiple find commands but looking if it is possible in one line. m file are monthly... (4 Replies)
Discussion started by: wahi80
4 Replies
All times are GMT -4. The time now is 10:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy