Você precisa de espaços em torno do [[
e do ]]
for f in *; do
if [[ "$f" -nt "$1" ]]; then
echo "$f"
fi
done
Sem os espaços, você receberá uma série de erros de "comando não encontrado". Isso ocorre porque o shell procura um comando com o nome [["$f"
e não consegue encontrá-lo. O comando que você deseja executar é [[
.
Alternativa
Sem a necessidade de loop:
find . -maxdepth 1 -newer "$1"