Omi*_*uin 2 shell-script files
我需要删除旧备份,但我只想保留星期四备份并删除其余备份。
给我一些功夫秘诀。如果这有所作为,我在 RHEL 上。
使用 GNU 工具:
LC_ALL=C find . -name '*.backup' -type f -printf '%TA:%p\0' |
tr '\0\n' '\n\0' |
grep -v '^Thursday:' |
cut -d: -f2- |
tr '\0\n' '\n\0' |
xargs -r0 rm -f
Run Code Online (Sandbox Code Playgroud)
这将查找文件的最后修改时间。如果备份是在周四开始但直到周五早上才完成,那么最后一次修改时间将是周五。
如果备份日期在文件名中,比如backup-2014-04-06.dump
,你会这样做:
find . -name 'backup-*.dump' -type f -print0 |
perl -MTime::Piece -0lne 'print if m{/backup-(\d{4}-\d\d-\d\d)\.dump$}
&& Time::Piece->strptime($1, "%Y-%m-%d")->day ne "Thu"' |
xargs -r0 rm -f
Run Code Online (Sandbox Code Playgroud)