Sim, mas os detalhes dependem de como o nome do arquivo é alterado. Se é sempre a data de hoje, basta dizer ao seu script para obter isso:
filename=myfile"$(date +%y%m%d)".flatfile
wget ftp://example.com/"$file"
Ou, se não for atualizado diariamente e houver apenas um arquivo chamado myfileWHATEVER.flatfile
, obtenha isso:
wget "ftp://example.com/myfile*.flatfile"
Se você puder ter muitos arquivos com nomes semelhantes, poderá fazer o download de todos eles e manter apenas os mais novos:
wget -N "ftp://example.com/myfile*.flatfile"
## Find the newest file
for file in myfile*.flatfile; do
[[ "$file" -nt "$newest" ]] && newest="$file";
done
## Delete the rest
for file in myfile*.flatfile; do
[[ "$file" != "$newest" ]] && rm "$file"
done
Como alternativa, você pode extrair a data do nome do arquivo:
wget -N "ftp://example.com/myfile*.flatfile"
for file in myfile*.flatfile; do
fdate=$(basename "${file//myfile}" .flatfile)
[[ "$fdate" -gt $(basename "${nfile//myfile}" .flatfile) ]] && nfile="$file"
done
for file in myfile*.flatfile; do
[[ "$file" = "$nfile" ]] || rm "$file"
done
Note que o acima irá manter vários arquivos se mais de um tiver a mesma data de modificação.