Uma abordagem que geralmente é conveniente é montar os arquivos e depois acessá-los como se fosse acessar arquivos locais comuns. Para um servidor que você acessa através do FTP, você pode usar o CurlFtpFS .
mkdir theserver
curlftpfs theserver.example.com theserver
Você precisará passar o nome de usuário e a senha para o curlftpfs, na linha de comando (que não é segura, como outros usuários da sua máquina poderão vê-los) ou no arquivo ~/.netrc
(altamente recomendado). Aqui está uma amostra da linha netrc:
machine theserver.example.com login remoteusername password swordfish
Agora que montou o servidor FTP como um diretório em sua máquina, você pode usar os comandos usuais, como ls
, cp
etc. Por exemplo, para copiar o arquivo do diretório que vem por último em ordem lexicográfica (deve estar ok se seus nomes de arquivos realmente contiverem a data antes do horário):
set -- theserver/remote/path/T*
eval "last=\${$#}"
cp -p -- "$last/new.txt" "/some/where/local/${last##*/}.txt"
Ou para copiar o arquivo mais recente, supondo que os nomes de arquivo envolvidos não contenham caracteres não imprimíveis ou novas linhas:
cd theserver/remote/path
last=$(ls -t -- T*/new.txt | head -n 1)
cp -p -- "$last" "/some/where/local/${last%/*}.txt"