请教一个删除文件的shell
AIX 系统。
某个固定目录下有类似如下的目录:
20110203
20110204
20110205
20110301
20110302
20110303
20110304
20110305
abc
def
Others
即除了6位日期格式的文件夹还有其他任意字符的文件夹,这些文件夹都含有子文件夹。
现在我需要一个shell文件,输入两个参数,一个日期(六位和上面格式一样),一个保留天数数字(如:5)
要求删除这个日期保留天数以前的日期文件夹,例如:
输入20110305,3 则删除:20110203,20110204,20110205,20110301,20110302
即保留:
20110303
20110304
20110305
和其他非日期格式的文件夹。
多谢!
某个固定目录下有类似如下的目录:
20110203
20110204
20110205
20110301
20110302
20110303
20110304
20110305
abc
def
Others
即除了6位日期格式的文件夹还有其他任意字符的文件夹,这些文件夹都含有子文件夹。
现在我需要一个shell文件,输入两个参数,一个日期(六位和上面格式一样),一个保留天数数字(如:5)
要求删除这个日期保留天数以前的日期文件夹,例如:
输入20110305,3 则删除:20110203,20110204,20110205,20110301,20110302
即保留:
20110303
20110304
20110305
和其他非日期格式的文件夹。
多谢!
作者: lynx286 发布时间: 2011-06-02
AIX系统不懂,顶一下
作者: zhaoke0128 发布时间: 2011-06-02
本帖最后由 regansong 于 2011-06-02 23:13 编辑
复制代码
试一下这个能不能用.
- #! /bin/sh
- ls -lrt |awk '($1 ~/d.*$/ && $9 ~ /[0-9]{6}/) {print $9}'|awk -v now=$1 -v day=$2 'BEGIN{deleteDay = now - day} ($1 <= deleteDay) {print $1}'|xargs -ti rm -rf {}
作者: regansong 发布时间: 2011-06-02