Если вы пишете скрипт с использованием csh, вы уже проиграли.;)
Но на самом деле это не проблема csh.Используйте параметр curl -R
или --remote-time
, который попытается установить для локального файла ту же временную метку, что и для удаленного файла.Затем вы просто используете ls -1rt | tail
или находите, или что-либо еще, что плывет на вашей лодке, используя местные метки времени Unix.Это предполагает, что удаленная сторона предоставляет последний измененный заголовок, что часто не так.Но если этот заголовок не указан, то не существует решения, которое будет работать без изменения удаленного веб-сервера.
Если вы хотите получить только самый новый файл, возможно, вы захотите использовать -Iопция, получить заголовки для каждого файла и сравнить значение последнего измененного заголовка.Теоретически вы можете сделать так, чтобы ваш сценарий оболочки создал новый пустой временный каталог, а затем для каждого проверенного файла коснитесь файла с тем же именем, что и удаленный файл, и используйте значение последнего измененного заголовка для метки времени.Затем, чтобы найти последний, снова используйте ваш любимый код сравнения даты в файловой системе.Или укажите путь к каждому файлу и создайте файл, используя отметку даты таким образом, который будет легко сортировать, только «фактически» извлекая последнее отсортированное имя файла;в любом случае.