Visit Our UNIX and Linux User Community


find files older than 30 days old


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users find files older than 30 days old
# 1  
Old 06-23-2011
find files older than 30 days old

Hello,

I have a script which finds files in a directory that are older than 30 days and remove them.
The problem is that these files are too many and when i run this command:
Code:
 
find * -mtime +30 | xargs rm

I run this command inside the directory and it returns the error:
/usr/bin/find: 0403-027 The parameter list is too long.

Is there another command instead of find which does not produce this kind of problem?

Thank you for your attention
# 2  
Old 06-23-2011
Try

PHP Code:
find /home/amit/log/ -mtime +30 -exec rm {} \; 
# 3  
Old 06-24-2011
You are wise to use xargs as it's much more efficient. The "splat" (*) on your command line is expanding to all files in the directory. What you want is to search in your current directory:

Code:
find . -mtime +30 | xargs rm

This User Gave Thanks to agama For This Post:
# 4  
Old 06-24-2011
If the version of find being used supports it, I usually use the -delete option as it is usually even faster. Implementations differ but usually the -exec option of find does a fork() and then an execvp(), and then waits on the child process. It starts a child process for each file which makes it slow. xargs does the same thing but calls vfork() and concatenates the argument list and usually only creates one child process. The -delete option simply does an rmdir() or unlink() as it is walking the filesystem tree and it is usually as fast or faster than xargs in my experience. Also by using -delete you don't run into the number of arguments hard limit that xargs imposes (or rather execvp(3)). By default, -delete deletes both files and directories, so if the intention is only to delete files, the -type parameter must also be specified. Of course, if it is a script that is being run often, it doesn't hurt to profile and determine which is best.

I usually do:
Code:
find . -type f -mtime +30 -delete


Last edited by hnrz; 06-24-2011 at 05:25 AM..
This User Gave Thanks to hnrz For This Post:
# 5  
Old 06-25-2011
thank you guys for your tips
i tried
Code:
find . -mtime +30 | xargs rm

and it worked perfectly!
# 6  
Old 06-28-2011
Code:
find . -type f -mtime +30 | xargs rm

Is safer.
# 7  
Old 06-29-2011
yes i agree but since i call the argument rm and not rm -r then it cannot delete directories anyway
This User Gave Thanks to omonoiatis9 For This Post:

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. UNIX for Dummies Questions & Answers

Find all log files under all file systems older than 2 days and zip them

Hi All, Problem Statement:Find all log files under all file systems older than 2 days and zip them. Find all zip files older than 3days and remove them. Also this has to be set under cron. I have a concerns here find . -mtime +2 -iname "*.log" -exec gzip {} Not sure if this will work as... (4 Replies)
Discussion started by: saurabh.mishra
4 Replies

3. Shell Programming and Scripting

Writte a script to copy the files older than 7 days using find and cp

Hi I'm trying to writte a script (crontab) to copy files from one location to another... this is what i have: find . -name "VPN_CALLRECORD_20130422*" | xargs cp "{}" /home/sysadm/patrick_temp/ but that is not working this is the ouput: cp: Target... (5 Replies)
Discussion started by: patricio181
5 Replies

4. UNIX for Dummies Questions & Answers

How do I find files which are older than 30 days and greater than 1GB

Hi All, I know the separate commands for finding files greater than 30 days and finding files greater than 1GB. How do I combine these two commands? Meaning how do I find files which are > 1GB and older than 30 days? ;) (4 Replies)
Discussion started by: Hangman2
4 Replies

5. UNIX Desktop Questions & Answers

Find files older than 10 days

What command arguments I can use in unix to list files older than 10 days in my current directory, but I don't want to list the hidden files. find . -type f -mtime +15 -print will work but, it is listing all the hidden files., which I don't want. (4 Replies)
Discussion started by: Pouchie1
4 Replies

6. Shell Programming and Scripting

How to find files older than 30 days

Dear Friends, I have two queries. 1) I want to see the list of folders which were created 29 days ago. 2) I want to see the folders in which last created file is older than 29 days. Can it be done? Thank you in advance Anushree (4 Replies)
Discussion started by: anushree.a
4 Replies

7. Red Hat

Find files older than 30 days in directories and delete them

Hi, I have dummies questions: My script here can find the files in any directories older than 30 days then it will delete the files but not the directories. I would like to also be able to delete the directories that hold old files more than 30 days not just the files itself. find . -type f... (2 Replies)
Discussion started by: lamoul
2 Replies

8. Solaris

Find files older than x days and create a consolidated single tar file.

Hello, I need help in finding files older than x days and creating a single consolidated tar file combining them. Can anyone please provide me a script? Thanks, Dawn (3 Replies)
Discussion started by: Dawn Bosch
3 Replies

9. Shell Programming and Scripting

Find files older than 20 days & not use find

I need to find files that have the ending of .out and that are older than 20 days. However, I cannot use find as I do not want to search in the directories that are underneath the directory that I am searching in. How can this be done?? Find returns files that I do not want. (2 Replies)
Discussion started by: halo98
2 Replies

10. UNIX for Dummies Questions & Answers

Find files older than 5 days and remove tem after listing

need help with this ... Find files older than 5 days and remove tem after listing list "test" file older than 5 days and then remove them (1 Reply)
Discussion started by: ypatel6871
1 Replies

Featured Tech Videos