Назад | Перейти на главную страницу

Команда оболочки для рекурсивного поиска новейших созданных файлов из корневого каталога?

Есть ли команда оболочки для рекурсивного поиска новейших созданных файлов из корневого каталога?

find /mydir -type f -exec stat -c '%y %N' {} \; | sort -n

Этот метод использует только findsort):

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