Os globbings do shell são expandidos em ordem lexical por padrão. Se você precisar de uma ordem de classificação diferente, precisará de um shell que suporte a especificação da ordem como zsh , o que provavelmente é uma coisa boa, pois você já está usando a sintaxe zsh (não citando $f ). / p>
for f in ./jobqueue/*(.NOm); do
chmod +x $f
$f
done
A parte (.NOm) é os qualificadores globbing de zsh . . apenas para arquivos regulares, N para expandir para nada se não houver nenhum arquivo correspondente em vez de relatar um erro (como se a opção nullglob estivesse ativada), Om a o rder (maiúsculas por ordem inversa) em m tempo de odificação.
Com o shell GNU ( bash ) e com o GNU ls , o equivalente seria:
eval "files=($(ls -drt --quoting-style=shell ./jobqueue/* 2> /dev/null))"
for f in "${files[@]}"
[ -f "$f" ] && [ ! -L "$f" ] || continue
chmod +x -- "$f"
"$f"
done