Якщо findцього немає, -mminі якщо він також застряг із тим, findщо приймає лише цілі значення для -mtime, то все не обов'язково втрачається, якщо вважати, що "старше" схоже на "не новіше".
Якщо нам вдалося створити файл, який має час моменту відключення, ми можемо попросити findзнайти файли, які не є новішими, ніж наш довідковий файл.
Щоб створити файл , який має правильний штамп часу є ускладниться , так як система , яка не має адекватний , findймовірно , також має менше, ніж здатна dateкоманду , яка може робити такі речі , як: date +%Y%m%d%H%M%S -d "6 hours ago".
На щастя, інші старі інструменти, які можуть цим керувати, хоч і більш громіздким способом.
Врахуйте, що шість годин - 21600 секунд. Ми хочемо знайти шість годин тому у корисному форматі:
$ 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 справді дала корисну дату, але її потрібно використовувати для кращого використання:
$ 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
Тепер рішенням цього старого UNIX є щось таке:
$ find . -type f ! -newer ref_file -a ! -name ref_file -exec rm -f "{}" \;
Також може бути хорошою ідеєю очистити наш довідковий файл ...
$ rm -f ref_file