文件命名为name_2016-01-19_00-00-00 ...
尝试了find /path/to/files* -mtime +5 -exec rm {} \;
之类的脚本,但遗憾的是文件已从Linux移到Windows等等,因此文件日期不再准确。
答案 0 :(得分:2)
以下将打印所有文件中没有日期的文件,或者日期早于您在"dummy_2015_01_27"
名称中放置的日期。一旦你有了名单,那么删除它们是微不足道的。
它假定文件名的name
部分永远不会有下划线(即_
上的日期是字段2)。如果那不是真的,那么你将不得不考虑别的事情。
(echo "dummy_2015_01_27"; find /path/to/files -type f) \
| sort --field-separator='_' --key 2 \
| sed '/^dummy_/,$d'
这适用于GNU sed(我有v4.2.2),这是Linux上的最爱,但可能不会与其他sed实现一起工作。同样,我只用GNU sort(v8.24)进行了测试。