habibzain Just husband, father and enthusiastic men about System Administration. Love to write short article about it. Perhaps can help and be useful for others.

Linux Delete File or Folder Older than x Days

1 min read

Linux Delete File or Folder Older than x Days

Hi Dude, this article will simply describe about script linux delete folder or file older than x days. I have directories named as:

2012-12-12
2012-10-12
2012-08-08

How would delete the directories that are older than 10 days with a bash shell script? This will do it recursively for you:

Linux Delete File and Folder Older than x Days

Delete Folder Older Than X Days

Here is simple command.

find /path/to/base/dir/* -type d -ctime +10 -exec rm -rf {} \;

Explanation:

  • find: the unix command for finding files / directories / links etc.
  • /path/to/base/dir: the directory to start your search in.
  • -type d: only find directories
  • -ctime +10: only consider the ones with modification time older than 10 days
  • -exec ... \;: for each such result found, do the following command in ...
  • rm -rf {}: recursively force remove the directory; the {} part is where the find result gets substituted into from the previous part.

Alternatively, use:

find /path/to/base/dir/* -type d -ctime +10 | xargs rm -rf

Which is a bit more efficient, because it amounts to:

rm -rf dir1 dir2 dir3 ...

as opposed to:

rm -rf dir1; rm -rf dir2; rm -rf dir3; ...

as in the -exec method.


With modern versions of find, you can replace the ; with + and it will do the equivalent of the xargs call for you, passing as many files as will fit on each exec system call:

find . -type d -ctime +10 -exec rm -rf {} +

Delete File Older Than X Days

Next, how to method to delete old file?

For example, i have web with code igniter framework. I want to clear ci_session file that dumping to /tmp file.

user@server01 ~# ls -al /tmp/

-rw-------   1 user user 86 Sep 26 22:14 ci_sessionc7a2272efaa08e4bc16
-rw-------   1 user user 86 Sep 27 01:32 ci_sessionc7a2298b92dd8562344
-rw-------   1 user user 86 Sep 26 12:54 ci_sessionc7a2dca33a348890618
-rw-------   1 user user 34 Sep 27 00:37 ci_sessionc7a3fd9ef972a0921fd
...
...

Here is simple way to do it.

find /tmp/ -type f -name 'ci_session*' -ctime +0 -exec rm -rf {} \;
or
find /tmp/ -type f -name 'ci_session*' -exec rm -rf {} \;

That is simple tips to linux script delete folder and file older than x days. That command run in linux/unix. What if we wanti delete file folder older than x day in windows? Here is the article.

See also  Install ISPConfig Centos7

May be it’s helpful, please feel free to leave a comment if you have any questions and I’ll appreciate it.

source : https://stackoverflow.com/questions/13868821/shell-script-to-delete-directories-older-than-n-days


habibzain Just husband, father and enthusiastic men about System Administration. Love to write short article about it. Perhaps can help and be useful for others.

Centos Failed Update Kernel

Today I did a kernel update on my server with Centos 7 OS. At the end of the update process, I found a kernel...
habibzain
1 min read

Easy Fix Missing mirrorlist http://mirrorlist.centos.org on CentOS 7

When running yum update or command that utilize the yum system, errors similar to the following are produced: If you’re encountering issues with the...
habibzain
1 min read

Easy Create Laravel Project with Composer

Requirement Laravel, a popular PHP framework, is renowned for its elegant syntax and robust features, making it a top choice for web developers. One...
habibzain
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *

Never miss good article from us, get weekly updates in your inbox