フォルダの最後の修正ファイル

フォルダの最後の修正ファイル

フォルダにナノ秒タイムスタンプがあるファイルがあります。

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)

(symlinkの場合は、シンボリックリンクが解決された後にファイルのmtimeが考慮されます。シンボリックリンク自体のmtimeを考慮するには、inを削除して両方の呼び出しに対応する-オプション-omを追加します。)-Lzstat

関連情報