如何列出周四未创建的所有文件

Omi*_*uin 2 shell-script files

我需要删除旧备份,但我只想保留星期四备份并删除其余备份。

给我一些功夫秘诀。如果这有所作为,我在 RHEL 上。

Sté*_*las 5

使用 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)