Search code examples
bashshellunixfind

Delete files older than 10 days using shell script in Unix


I want to delete scripts in a folder from the current date back to 10 days. The scripts looks like:

2012.11.21.09_33_52.script
2012.11.21.09_33_56.script
2012.11.21.09_33_59.script

The script will run in every 10 day with Crontab, that's why I need the current date.


Solution

  • find is the common tool for this kind of task :

    find ./my_dir -mtime +10 -type f -delete
    

    EXPLANATIONS

    • ./my_dir your directory (replace with your own)
    • -mtime +10 older than 10 days
    • -type f only files
    • -delete no surprise. Remove it to test your find filter before executing the whole command

    And take care that ./my_dir exists to avoid bad surprises !