Com relação à parte A da sua pergunta, aqui está uma referência para os testes de arquivo padrão.
Em particular, o que você pode fazer é:
for file in $1/*; do
[ ! -d "$file" ] && echo 'stat -c %y $file | cut -d ' ' -f1'
done
Quanto à parte B, consulte this pergunta stackoverflow.