Я считаю, что это сделает то, что вам нужно. Он просматривает каждый каталог в свою очередь и проверяет, что нет «недавно измененных» файлов.
find * -type d |
while read DIR
do
LINES=$(find "$DIR" -maxdepth 1 -type f -mtime -5 -print -quit)
test -z "$LINES" && echo "$DIR NOT RECENTLY MODIFIED"
done
Если найдут ... -MaxDepth 1
не работает для вашей ситуации, не стесняйтесь изменить его на что-то вроде этого
LINES=$(find "$DIR" \( -type d -prune \) -o \( -type f -mtime -5 -print -quit \))
, и если вы хотите считать количество элементов, недавно измененных (или если -Quit
не доступен), это будет работать
LINES=$(find "$DIR" -maxdepth 1 -type f -mtime -5 | wc -l | tr -d' ')
test 0 -eq "$LINES" && echo "$DIR NOT RECENTLY MODIFIED" || echo "$DIR has $LINES recent file(s)"
Если я правильно понял вопрос, это можно сделать довольно просто с
find . -mtime +5 -exec bash -c 'echo "${0%/*}"' {} \; | sort | uniq