最后修改文件夹中的文件

最后修改文件夹中的文件

在一个文件夹中,我有带有纳秒时间戳的文件:

FileLastestFile.ext
FileOther0.ext
FileOther1.ext
FileOther2.ext
FileOther3.ext
FileOther4.ext
...
FileOther.ext

我只想保留从该目录 ( FileLastestFile.ext) 中的最新文件开始 10 秒创建的文件。

我尝试使用该命令find .. -newermt,但我不知道以哪种方式将FileLastestFile.ext时间戳指定为原点。

答案1

我认为这显示了如何使用 FileLatestFile.ext 中的时间,从而%x表示上次访问、%y表示上次修改并%z表示上次状态更改。

$ find /folder/ -mindepth 1 -newerct "$(stat --printf=%y /folder/FileLatestFile.ext)" 2>/dev/null

现在的技巧是减去 10 秒。从那。

答案2

zsh

#! /bin/zsh -
zmodload zsh/stat

newest=(*.ext(-om[1]))
zstat -F%s.%N -A mtime_of_newest +mtime -- $newest || exit
(( cutoff = mtime_of_newest - 10 ))
older_than_cutoff() {
  local mtime
  zstat -F%s.%N -A mtime +mtime -- ${1-$REPLY} && (( mtime < cutoff ))
}
rm -rf -- *.ext(+older_than_cutoff)

(请注意,对于符号链接,考虑的是符号链接解析后文件的 mtime。如果您希望考虑符号链接本身的 mtime,请删除 in-并将-om-L选项添加到两个zstat调用中)。

相关内容