bash - Delete files older than 365 days -


files named name_2016-01-19_00-00-00...

tried script find /path/to/files* -mtime +5 -exec rm {} \; unfortunately files moved linux windows , forth file dates no longer accurate.

the following print files either have no date in name, or date older whatever put in "dummy_2015_01_27" name. once have list of names deleting them trivial.

it assumes there never underscore in name part of filename (i.e. date field 2 when split on _). if that's not true you'll have think of else.

(echo "dummy_2015_01_27"; find /path/to/files -type f) \     | sort --field-separator='_' --key 2 \     | sed '/^dummy_/,$d' 

this works gnu sed (i have v4.2.2), favourite on linux, won't work other sed implementations. likewise, i've tested gnu sort (v8.24).


Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

How to get the ip address of VM and use it to configure SSH connection dynamically in Ansible -

javascript - Get parameter of GET request -