В настоящее время я пишу скрипт ksh, который будет запускаться каждые 5 минут. Я хочу выбрать два последних добавленных файла в каталоге, которые имеют определенный формат. Формат файла должен быть: OUS_*_*_*.html
. Затем файлы должны быть скопированы в каталог назначения.
Я предполагаю, что могу использовать поиск, но я использую HP-UX, и он не поддерживает параметры -amin
, -cmin
, -mmin
. Кто-нибудь знает, как я могу реализовать эту функциональность?
Редактировать 1: я обнаружил следующие команды, каждая из которых должна возвращать один самый новый файл, но в списке используется более одного файла:
ls -Art | tail -n 1
ls -t | head -n1
Правка 2: я вижу, как должны работать функциональные возможности этих команд, но ls -t
перечисляет файлы в формате таблицы, и выбор первой строки фактически выбирает три отдельных имени файла. Я попытался использовать ls -lt
, но теперь первая строка представляет собой строку total 112
, за которой следуют имена файлов вместе с их правами доступа, отметкой времени и т. д.
Изменить 3: я обнаружил, что параметр -1
(цифра 1, а не l) предоставляет список только с именами файлов. Используя команду ls -1t | head -n 2
, я смог получить список двух самых новых файлов.
Вопрос. Можно ли ограничить команду ls
только поиском файлов в упомянутом ранее формате?
ls -t | head -2
. Наверняка это доступно на HP-UX? - person Joseph Myers   schedule 20.02.2015ls -t | head -2 | xargs cp -it TargetDir
и покончил с этим. Но, например, флаг-t
недоступен во FreeBSD. И, насколько я знаю, самxargs
может даже не быть на HP-UX. Даже синтаксисhead
иtail
в вашей системе отличается. Так что используйте пример, который я упомянул, и посмотрите, сможете ли вы с ним работать. Если решишь, можешь написать ответ! - person Joseph Myers   schedule 23.02.2015cp -i `ls -1t | head -n 2` TargetDirectory
- person Joseph Myers   schedule 23.02.2015