Скопируйте три новейших файла из одного каталога (рекурсивно) в другой указанный каталог

Я использую bash.

Предположим, у меня есть каталог файлов журнала / var / myprogram / logs / .

В этом каталоге у меня есть много подкаталогов и подкаталогов, которые включают различные типы файлов журналов из моей программы.

Я хотел бы найти три новейшие файлы (измененные самым последним), имя которых начинается с 2010 , в / var / myprogram / logs / , независимо от подкаталога, и скопируйте их в мой домашний каталог.

Вот что я бы сделал вручную
1. Просмотрите каждый каталог и выполните ls -lt 2010 * чтобы увидеть, какие файлы, начиная с 2010 , были изменены в последний раз.
2. Пройдя по всем каталогам, я узнаю, какие три файла самые новые. Поэтому я копирую их вручную в свой домашний каталог.

Это довольно утомительно, поэтому я подумал, не смогу ли я каким-то образом объединить несколько команд, чтобы сделать это за один шаг, желательно без использования сценариев оболочки?

Я был просматривая find , ls , head и awk , которые я мог бы использовать, но не нашел правильного пути склейте их вместе.

Дайте мне знать, если мне нужно уточнить. Спасибо.

1
задан Russell 21 October 2010 в 21:37
поделиться