Primeiro, nunca analise a saída de ls
. A saída é considerada legível e não foi projetada para análise. É muito melhor simplesmente dar uma volta pela globbing, como mostrarei abaixo.
O problema real foi que você usou $F
em vez de %F
. O primeiro teria sido uma variável vazia e, portanto, o comando date não teria nenhuma saída. Então, aqui está o comando modificado:
for i in ./*; do
modTime="$(/usr/gnu/bin/date -r "$i" +%F)"
echo "$modTime"
done
No entanto, um único comando find
deve fazer o que você deseja:
find ./ -maxdepth 1 -printf "%TY-%Tm-%Td\n"