Eu não acho que você pode fazer isso com o curl. Você precisaria executar curl -l
para listar o conteúdo do diretório, contar as correspondências, classificar por data e emitir comandos rm
remotos com curl -Q
.
Se o seu sistema suporta FUSE (a maioria faz), recomendo montar o diretório remoto como um sistema de arquivos. Essa abordagem permite que você divida seu problema em duas tarefas separadas: acesse os arquivos remotos montando-os e trabalhe neles como faria em arquivos locais. Você pode usar o curlftpfs para a montagem remota.
mkdir ftp.example.com
curlftpfs ftp.example.com ftp.example.com
cp -p /path/to/local/file ftp.example.com/remote/dir/
Agora, para localizar os arquivos mais antigos em um diretório, a maneira mais fácil é usar o zsh e seus qualificadores da glob . Trabalhando no diretório ftp.example.com/remote/dir/
:
files=(*(mm)) # Om = sort by date, youngest first
if ((${#files} > 5)); then
rm $files[-1] # remove the last file
# rm $files[6,-1] # remove all but the 5 youngest files
fi