Visit The New, Modern Unix Linux Community


Delete directory older than n days


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Delete directory older than n days
# 1  
Delete directory older than n days

Code:
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-17
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-16
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-20
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:39 2020-04-14
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:41 2020-04-15
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:44 2020-04-18
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 13:18 2020-04-21

I'm trying to delete directories older than 7 days. The directories are created by date every day and there are *.gz files inside. Whevener I compress or uncompress the *.gz files, the directory modified date changes to the current date and when I run the code, it won't delete it. This is what I have so far:

Code:
find ~/delete/* -type d -mtime +7 -exec cp -r '{}' ~/test \;

# 2  
Based on this
Code:
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-17
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-16
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 09:44 2020-04-20
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:39 2020-04-14
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:41 2020-04-15
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 12:44 2020-04-18
drwxr-xr-x 2 dbadmin dbadmin 4096 Apr 21 13:18 2020-04-21

as output from ls and using the filename to generate a touch command to change the mtime on the directory:
Code:
ls -ld | while read f1 f2 f3 f4 f5 f6 f7 dname
do
   newtime=$( echo "$dname" | awk '{ gsub("-",""); printf("%s0000", $0) } ' )
    touch -t "$newtime" $dname
done

This only changes filetimes.

Last edited by jim mcnamara; 04-21-2020 at 06:48 PM..
This User Gave Thanks to jim mcnamara For This Post:

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #795
Difficulty: Easy
10 has three prime factors 1, 2 and 5.
True or False?

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Delete file older than three days

I am using SFTP to transmit files from the Mainframe to an UNIX server. I am looking for some kind of script that runs with SFTP to delete tranmitted files older than 3 days. Can this be done in a SFTP transmission batch job? (5 Replies)
Discussion started by: Steve Carlson
5 Replies

2. AIX

Want to delete directory, subdirectories and all files which are older than 7 days

how do i remove sub directories of a directory and all files which are older than 7 days by a single command in AIX. pls help me. I am using command as #find /gpfs1/home/vinod/hpc/ -depth -type d -mtime +7 -exec rm -rf {} \; so i want to delete all sub directories and all files from the... (1 Reply)
Discussion started by: vinodkmpal
1 Replies

3. Shell Programming and Scripting

Delete files older than 10 Days in a directory

Hi All I want to remove the files with name like data*.csv from the directory older than 10 days. If there is no files exists to remove older than 10 days, It should not do anything. Thanks Jo (9 Replies)
Discussion started by: rajeshjohney
9 Replies

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

5. Shell Programming and Scripting

To delete logs older than 30 days

I want to write a shell script that deletes all log files in a directory that are older than 30 days except for 3 files: I am using the following command: find /tmp/logs -name "*.log" -mtime +30 -exec rm -f {} \;But this command deletes all the log files. How can i modify this script that... (5 Replies)
Discussion started by: mmunir
5 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. 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

8. Shell Programming and Scripting

delete file older than N days

Hi, All, I'd like to delete files older than 1 day. I thought the following command find /your_directory -mtime +1-exec rm -f {} \; will do the work, but not so, it seems like it won't delete files unless it is 2 days old or older. the files between 1 day and 2 days old does not... (7 Replies)
Discussion started by: ericaworld
7 Replies

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

Featured Tech Videos