删除超过特定时间的文件名称是时间戳的文件和目录

・1 分钟阅读

 $ ls | grep '....-..-..-......' | xargs -I {} bash -c "[[ x{} < x$(date -d '3 days ago' +%Y-%m-%d-%H%M%S) ]] && rm -rfv {}"

说明

假设你有一个备份目录,其中包含由时间戳命名的备份快照:


$ ls
2013-05-03-103022
2013-05-04-103033
2013-05-05-103023
2013-05-06-103040
2013-05-07-103022

要删除超过3天的快照,一行就可以做到:


$ date
Tue May 7 13:50:57 KST 2013
$ ls | grep '....-..-..-......' | sort | xargs -I {} bash -c"[[ x{} < x$(date -d '3 days ago' +%Y-%m-%d-%H%M%S) ]] && rm -rfv {}"
removed directory: `2013-05-03-103022'
removed directory: `2013-05-04-103033'

限制

由于GNU日期和BSD日期之间的差异,它不能在OS X上工作。

Hujiuxiang profile image