Record that the find in this environment rejects relative newermt timestamps and returns a silent zero, and that a control counting output lines confirmed the broken instrument
This commit is contained in:
parent
da7c813c1e
commit
77f379141e
1 changed files with 28 additions and 0 deletions
|
|
@ -507,3 +507,31 @@ HTTP-код, количество, номер строки кода. Никак
|
|||
ради которого оно нужно**; «сессия была внимательна» не переносится на следующую смену, условие в коде
|
||||
переносится. ⚠ Практическое следствие для промтов: строка «построй прибор» дефектна, годная называет,
|
||||
ЧТО прибор обязан отказаться засчитывать.
|
||||
|
||||
## ⛔ ТРЕТЬЕ СВОЙСТВО СРЕДЫ, ДАЮЩЕЕ ТИХИЙ ЛОЖНЫЙ НОЛЬ: `find` здесь — bfs, и `-newermt` он не понимает (18.09)
|
||||
|
||||
Два уже записаны в каноне — обёртка `grep` чтит `.gitignore` и не видит `books/`; `sqlite3` как CLI нет.
|
||||
Третье поймано сегодня и стоило двух неверных выводов подряд.
|
||||
|
||||
**Замер.** `find <путь> -newermt '-10 minutes' -type f 2>/dev/null` печатает **ноль строк**. Не потому, что
|
||||
файлов нет: `find` в этой среде — `bfs`, и он отвечает `bfs: error: Invalid timestamp.` с кодом **141**.
|
||||
Стандартное `2>/dev/null` глушит диагностику, и остаётся чистый ноль, неотличимый от результата поиска.
|
||||
Тот же каталог через `-mmin -15` даёт **7 файлов**, через `-mmin -60` — **15**.
|
||||
|
||||
⇒ Цена конкретна: я дважды прочитал этот ноль как «зона не трогала дерево» и на этом основании собрался
|
||||
запускать мутационную кампанию. Дерево в этот момент правилось активно — побайтовое сравнение копии с
|
||||
источником поймало файл, разошедшийся ВО ВРЕМЯ `tar`, а каталог мутаций вырос 535/324 → 537/326.
|
||||
Кампания на таком дереве измерила бы не тот предмет, и числа выглядели бы нормально.
|
||||
|
||||
⛔ **И вторая половина, которая хуже первой: мой КОНТРОЛЬ тоже был дефектным и подтвердил негодный прибор.**
|
||||
Я проверял три формы записи времени строкой `n=$(find … 2>&1 | wc -l)` и считал успехом `n ≥ 1`. Все три
|
||||
формы напечатали по **десять строк ошибки**, и все три получили галочку «✓ находит заведомо свежий файл».
|
||||
⇒ **контроль, считающий СТРОКИ ВЫВОДА вместо СОВПАДЕНИЙ, подтверждает что угодно, включая собственную
|
||||
поломку**; `2>&1` в контроле превращает диагностику в «результат». Годный контроль сравнивает с ИМЕНЕМ
|
||||
ожидаемого файла и печатает код возврата первого звена — `код возврата: 141` виден сразу, «10» не виден
|
||||
никогда.
|
||||
|
||||
⇒ **Практика:** относительное время в `find` — только `-mmin`/`-mtime`; рядом с любым нулём печатать
|
||||
`PIPESTATUS`/код возврата; контроль прибора строить на ОЖИДАЕМОМ СОДЕРЖИМОМ, а не на количестве строк.
|
||||
⚠ Родня записанного выше класса «обёртка вокруг встроенной команды даёт 127, а счётчик печатает 0» —
|
||||
механизм тот же, программа другая: **ненулевой код молчит, когда его вывод отправлен в `/dev/null`.**
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue