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