O seguinte classifica os arquivos pela data de modificação, já que a data de criação não é suportada no sistema em que testei o script. A substituição de %Y
por %W
deve produzir o tempo de criação, se suportado.
#! /bin/bash
files=(*.txt)
while IFS= read -r line ; do
sorted+=("$line")
done < <(
for f in "${files[@]}" ; do
echo $(stat -c %Y -- "$f")$'\t'"$f"
done | sort -nk1,1 | cut -t $'\t' -f2-
)
echo "${sorted[@]}"
Funciona para arquivos com espaços em seus nomes. Nomes de arquivo contendo novas linhas podem quebrá-lo, mas você não usa novas linhas em nomes de arquivos, certo?