Я пытаюсь сделать то, что я считаю простой вещью под Linux. У меня есть сценарий bash, который запускает различные тестовые программы, и я хочу определить, какие файлы в текущем каталоге были созданы тестовыми программами. Итак, я делаю что-то вроде этого:
touch timestamp-file run the test find -newer timestamp-file -type f > list-of-files rm -f timestamp-file
Оказывается, степень детализации find -newer плохая, поэтому обычно происходит то, что некоторые файлы, сгенерированные тестовой программой, отображаются как СТАРЕЕ, чем файл временной метки. Итак, я попробовал это:
ls -tr1 | sed '1,/timestamp-file/d'
для создания того же списка. Это обычно работает, но не всегда. Я все еще сталкиваюсь с ситуацией, когда файлы, сгенерированные тестом, отображаются как более старые, чем файл с отметкой времени.
Спасибо!
P.S. Я могу сделать это другим способом, сделав два снимка каталога, один до запуска тестовой программы, а другой после, и сравнив их. Любые файлы во втором списке, которых нет в первом, должны быть созданы тестовой программой (меня не интересуют фоновые задания или другие пользователи, записывающие в каталог). Но этот метод не то, что мне нужно, потому что, если выходной файл не был удален до запуска теста (они должны быть удалены, но в некоторых случаях могут и не быть), этот метод скажет, что он не был создан тестовая программа, поскольку она находилась в каталоге до запуска тестовой программы.