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