В настоящее время я пишу скрипт ksh, который будет запускаться каждые 5 минут. Я хочу, чтобы выберите два последних добавленных файла в каталоге, которые имеют определенный формат. Формат файла должен быть: OUS_*_*_*.html
. Затем файлы должны быть скопированы в целевой каталог.Найдите и скопируйте два последних файла, добавленных в каталог с определенным форматом
Я предполагаю, что могу использовать find, но я использую HP-UX, и он не поддерживает параметры -amin
, -cmin
, -mmin
. Кто-нибудь знает, как я могу достичь этой функциональности?
Edit 1: Я нашел следующие команды, каждая из которых, как предполагается, возвращает единственный новейший файл, но при использовании более чем один файл в списке:
ls -Art | tail -n 1
ls -t | head -n1
Edit 2: Я вижу, как функциональность этих команд должна работать, но ls -t
перечисляет файлы в формате таблицы, а выбор первой строки фактически выбирает три отдельных имени файла. Я пытался использовать ls -lt
, но теперь первая строка является строкой total 112
следуют имена файлов вместе с их правами доступа, штамп времени и т.п ..
Редактировать 3: Я обнаружил, что -1
(цифра 1, а не l) предоставляет список с именами файлов. Используя команду ls -1t | head -n 2
, я смог получить возможность перечислить два новых файла.
Вопрос: Возможно ли ограничить команду ls
, чтобы просто искать файлы с указанным ранее форматом?
Даже в самом худшем случае, с помощью 'Ls -t | голова -2' приходит в голову. Наверняка это доступно на HP-UX? –
Спасибо за быстрый ответ. Эти команды доступны, однако при запуске команд в тестовом каталоге перечислены 6 из 8 файлов. @JosephMyers –
@JosephMyers Вы могли бы расширить свою команду, чтобы перечислить и скопировать два последних файла, которые соответствуют конкретному формату? –