Eğer bir kişi findyoksa -mminve biri findiçin sadece tamsayı değerlerini kabul eden bir ile sıkışmışsa -mtime, o zaman biri "daha eski" nin "daha yeni değil" e benzediğini düşünürse, her şey mutlaka kaybolmaz.
Kesme zamanımızın bir zamanı findolan bir dosya oluşturabilirsek, referans dosyamızdan "daha yeni olmayan" dosyaları bulmamızı isteyebiliriz .
Doğru zaman damgası olan bir dosya oluşturmak için yeterli olmayan bir sistem nedeniyle ilgili biraz findbelki de daha az-daha-yetenekli sahiptir dategibi şeyler yapabilirdi komutu: date +%Y%m%d%H%M%S -d "6 hours ago".
Neyse ki, bunu daha kötü bir şekilde de olsa, bunu yönetebilen diğer eski araçlar.
Altı saatin 21600 saniye olduğunu düşünün. Altı saat önceki zamanı faydalı bir biçimde bulmak istiyoruz:
$ date && perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'
> Thu Apr 16 04:50:57 CDT 2020
202004152250.57
Perl ifadesi yararlı bir tarih üretti, ancak daha iyi kullanılmalıdır:
$ date && touch -t `perl -e '@d=localtime time()-21600; \
printf "%4d%02d%02d%02d%02d.%02d\n", \
$d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]'` ref_file && ls -l ref_file
Thu Apr 16 04:53:54 CDT 2020
-rw-rw-rw- 1 root sys 0 Apr 15 22:53 ref_file
Şimdi bu eski UNIX'in çözümü şu konularda:
$ find . -type f ! -newer ref_file -a ! -name ref_file -exec rm -f "{}" \;
Referans dosyamızı temizlemek de iyi bir fikir olabilir ...
$ rm -f ref_file