Deleting the contents of a folder older than X hours


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Deleting the contents of a folder older than X hours
# 1  
Old 03-11-2009
Deleting the contents of a folder older than X hours

Every day a new .zip file is uploaded to a folder and at mid-night the zip file is to be extracted into a /data/ folder, inside a date-named folder.

Code:
# This should extract the contents of a zip file into the /data/ folder into a date based folder
/usr/bin/unzip -a -o /path/to/traveldata/traveldata.zip -d /path/to/traveldata/data/`date +"%Y-%m-%d"`;

Once this is complete, I need to delete old folders within my /data/ folder older than X hours. (It will be set to 48 hours, but for the purposes of my test I've specified 0 hours).

In my example I've been able to remove folders, but it removes the parent /data/ folder too!

I don't want this to happen, rather I just want to delete the sub-folders (or children of /data/).

Code:
# I want to delete any folders found inside the data folder older than 0 hours.
find /path/to/data/ -ctime 0 -type d -exec rm -Rf {} \;

If it is not possible to do this, how do I append the date to the extracted filename?

Thanks.
# 2  
Old 03-11-2009
The find is also finding the data folder. You may try something like:

Code:
 
find /path/to/data -type d ! -name data -ctime 0 -exec /bin/rm -Rf "{}" \;

# 3  
Old 03-11-2009
Thanks I will try it right now and report here.

Thanks again.
# 4  
Old 03-11-2009
Sorry but its still removing the data folder.

Code:
find /path/to/traveldata/data/ -type d ! -name data -ctime 0 -exec /bin/rm -Rf "{}" \;

I get the following output;

Quote:
# find: /path/to/traveldata/data/: No such file or directory
NB: The folder does exist before execution of shell script.

Last edited by worchyld; 03-11-2009 at 08:30 AM.. Reason: The post implied the folder did not exist
# 5  
Old 03-11-2009
Try adding the -depth option:

Code:
[rick data]$ pwd
/path/to/traveldata/data
[rick data]$ ll
total 12
drwxrwxr-x 2 rick rick 4096 2009-03-11 08:00 2009-03-09
drwxrwxr-x 2 rick rick 4096 2009-03-11 08:00 2009-03-10
drwxrwxr-x 2 rick rick 4096 2009-03-11 08:00 2009-03-11
[rick data]$ cd
[rick ~]$ find /path/to/traveldata/data -depth ! -name data -type d -ctime 0 -exec /bin/rm -Rf "{}" \;
[rick ~]$ cd -
/path/to/traveldata/data
[rick data]$ ls -la
total 8
drwxrwxr-x 2 rick rick 4096 2009-03-11 08:00 .
drwxrwxr-x 3 rick rick 4096 2009-03-11 07:53 ..
[rick data]$

# 6  
Old 03-11-2009
Hi there.

I tried adding the -depth parameter, I even copy/pasted your code. But its still removing the /data/ folder.

[code]
find /path/to/traveldata/data/ -depth ! -name data -type d -ctime 0 -exec /bin/rm -Rf "{}" \;
find: /path/to/traveldata: No such file or directory
[.code]
# 7  
Old 03-11-2009
What O/S & Shell are you working on?

Can you post a complete trace of what you're doing, similar to what I did in my previous reply?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Folder contents getting appended as strings while redirecting file contents to a variable

Hi one of the output of the command is as below # sed -n "/CCM-ResourceHealthCheck:/,/---------/{/CCM-ResourceHealthCheck:/d;/---------/d;p;}" Automation.OutputZ$zoneCounter | sed 's/$/<br>/' Resource List : <br> *************************** 1. row ***************************<br> ... (2 Replies)
Discussion started by: vivek d r
2 Replies

2. Shell Programming and Scripting

Deleting Files Older than 1 hours.

How to Deleting Files Older than 1 hours. Base on SunOS. this file gen every 1 min. -rw-r--r-- 1 nobody nobody 4960 Jan 27 02:02 23_201301270201.log -rw-r--r-- 1 nobody amudu 2325 Jan 27 02:03 33_201301270202.log -rw-r--r-- 1 nobody amudu 3255 Jan 27 02:03... (2 Replies)
Discussion started by: ooilinlove
2 Replies

3. Shell Programming and Scripting

files older than few hours

Hi All I need to know the command which can be used to list the files which are 3 hours old so that it can be deleted. (3 Replies)
Discussion started by: mskalyani9
3 Replies

4. Shell Programming and Scripting

Deleting files older than 6 hours

Hi All, I am using the below script to find all the files in a folder which are older than 6 hours and delete all those files, but some how I am not getting the required output. find $HOME/Log -type f -name "*.log" -amin +360 -exec rm *.* {} \ can any one please check and let me know... (13 Replies)
Discussion started by: subhasri_2020
13 Replies

5. Shell Programming and Scripting

Find files older than 8 hours

I need a script to find files older than 8 hours... I know i can use mmin but the same is not working...the same only support mtime... This is the script i created..but the same is only giving 1 hour old..as I have given dt_H as 1 only...but if i give 8..it can go in -(negative)..how to get the... (5 Replies)
Discussion started by: cotton
5 Replies

6. AIX

how to find files older than 2 hours

I need help to find files in a directory that are older than 2 hours. Any help would be great. (3 Replies)
Discussion started by: pt14
3 Replies

7. Solaris

Deleting Files Older than 24 hours

Hi, I am using Solaris Box, I need to delete file(cookies.html) from the path(/usr/temp) which are older than 24 hours(I want in hours, not in days) Can u provide the command for the above query (7 Replies)
Discussion started by: mazhar803
7 Replies

8. Shell Programming and Scripting

removing files after 6 hours or older

What is the command to remove files that are generated 6 hours or older? The find and remove tells only how to remove if the file is one day old or more. Appreciate quick reply. Thanks (3 Replies)
Discussion started by: gthokala
3 Replies

9. UNIX for Dummies Questions & Answers

Finding only those files older than 2 hours

I need to write a program that will only remove those files that are older than 2 hours. Is there some variation of find . -mtime ? -name '*' that I can use? Thanks as always for your help. Regards, Dave :) (2 Replies)
Discussion started by: mh53j_fe
2 Replies

10. Shell Programming and Scripting

Finding files older than 2 hours

I want to write a sh script that will find files older than 2 hours and tar them. I've had a look at the find man page but can't see how to do it by hours. Help please. Thanx (1 Reply)
Discussion started by: ianf
1 Replies
Login or Register to Ask a Question