Самый легкий способ найти новейший файл в каталоге состоит в том, чтобы использовать zsh и его спецификаторы шарика om
к виду ко времени изменения и [1]
выбрать новое соответствие.
upload /path/to/dir/*(om[1])
Там бесполезно, портативный метод. Единственный портативный метод должен использовать ls -t
перечислить файлы по дате и проанализировать результат, но парсинг ls
чревато опасностями. Сделайте это, только если Вы уверены, что Ваши имена файлов не содержат новых строк или непечатаемых символов.
upload "$(ls -t /path/to/dir | head -n 1)"
Для загрузки существует много инструментов. Обычно устанавливаемый является завихрением.
curl -T /path/to/local/file ftp://ftp.example.com/remote/dir
Другой подход должен смонтировать удаленный каталог как файловую систему, например, с curlftpfs.
mkdir ftp.example.com
curlftpfs ftp.example.com ftp.example.com
cp -p /path/to/local/file ftp.example.com/remote/dir/
Добавьте crontab запись для выполнения задачи каждый день. Выполненный crontab -e
и добавьте строку как это:
SHELL=/bin/zsh
42 3 * * * curl -T /path/to/dir/*(om[1]) ftp://ftp.example.com/remote/dir
Это не может ответить на Ваш вопрос непосредственно, но это - точно вид проблем, решаемых системами автоматизации как Марионетка, Шеф-повар и другие.
Приложения упаковываются в универсальные допускающие повторное использование модули, которые можно использовать для конфигурирования машины независимо от дистрибутива, который она выполняет.