폴더의 마지막 수정 파일

폴더의 마지막 수정 파일

폴더에 나노초 타임스탬프가 있는 파일이 있습니다.

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

관련 정보