Я использую bash.
Предположим, у меня есть каталог файлов журнала / var / myprogram / logs /
.
В этом каталоге у меня есть много подкаталогов и подкаталогов, которые включают различные типы файлов журналов из моей программы.
Я хотел бы найти три новейшие файлы (измененные самым последним), имя которых начинается с 2010
, в / var / myprogram / logs /
, независимо от подкаталога, и скопируйте их в мой домашний каталог.
Вот что я бы сделал вручную
1. Просмотрите каждый каталог и выполните ls -lt 2010 *
чтобы увидеть, какие файлы, начиная с 2010
, были изменены в последний раз.
2. Пройдя по всем каталогам, я узнаю, какие три файла самые новые. Поэтому я копирую их вручную в свой домашний каталог.
Это довольно утомительно, поэтому я подумал, не смогу ли я каким-то образом объединить несколько команд, чтобы сделать это за один шаг, желательно без использования сценариев оболочки?
Я был просматривая find
, ls
, head
и awk
, которые я мог бы использовать, но не нашел правильного пути склейте их вместе.
Дайте мне знать, если мне нужно уточнить. Спасибо.