find . -maxdepth 1 -mtime +15 -type f -printf "%TY%Tm%Td %p\n" | while read date name ; do zip $date $name; done
Hora da última modificação do arquivo no formato Ymd
Para fazer isso por todos os diretórios, existem diferentes maneiras de fazer isso, dando abaixo alguns, certifique-se de usar caminho absoluto com find, por exemplo, eu uso "/home/user"
find /home/user -type d -print0 | while read -d '' -r dir; do cd "$dir" && pwd && find . -maxdepth 1 -mtime +15 -type f -printf "%TY%Tm%Td %p\n" | while read date name ; do zip $date $name; done; done
ou
find /home/user -type d -print0 | xargs -0 -I {} sh -c 'cd '\"{}\"' && pwd && find . -maxdepth 1 -mtime +15 -type f -printf "%TY%Tm%Td %p\n" | while read date name ; do zip $date $name; done'