Есть ли команда оболочки для рекурсивного поиска новейших созданных файлов из корневого каталога?
find /mydir -type f -exec stat -c '%y %N' {} \; | sort -n
Этот метод использует только find
(и sort
):
find /somedir -type f -printf "%T+ %p\n" | sort
Вы можете ограничить его последними 3 днями, например, следующим образом:
find . -type f -mtime -3 -printf "%T+ %p\n" | sort
Или последние 42,5 часа:
find . -type f -mmin -2550 -printf "%T+ %p\n" | sort
что то же самое, что:
find . -type f -mmin -$((42 * 60 + 30)) -printf "%T+ %p\n" | sort
Чтобы избежать разветвления одного процесса для каждого проверенного файла, если вы работаете на машине с GNU-версиями find и xargs, рассмотрите что-то вроде этого:
find /dir -type f -print0 | xargs -0 stat -c '%Y %N' | sort -n
Это правильно обрабатывает пробелы и выполняет команду (ls
в этом случае) для каждого файла. Изменить (или удалить) -n1
для одновременного выполнения команды над несколькими файлами.
find . -type f -printf "%T@ %p\0" | sort -z -nr | cut -z -d' ' -f2- |xargs -0 -n1 ls