Я хочу найти файлы в подкаталогах, отсортированных по метке времени (создания), с самыми последними в первую очередь.
Я просмотрел справочную страницу, но, похоже, она позволяет фильтровать только по меткам времени, а не сортировать по меткам времени.
Какие варианты я могу передать find
для достижения этой цели? Кроме того, как я могу объединить его с другим инструментом, например, sort
сортировать по отметке времени?
find
что-либо в определенном порядке, кроме выбора между поиском по глубине и поиском по ширине.find
чем может быть передано одному экземпляруls
.Ответы:
Хотя решение Пола в целом нормально, оно требует больше операций ввода-вывода, чем просто:
источник
find
возвращает миллионы файлов? Разве сортировка не собирается сортировать их как один очень длинный список? Это все еще будет эффективно? (Вместо сортировки каждого каталога по отдельности.)find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 ls
Новые версииcut
имеют опцию -z, поэтому имена файлов с символами новой строки будут работать.xargs -0 ls -t
Подход не будет работать правильно , когда есть так много файлов , которыеxargs
необходимо начатьls
более чем один раз, но этот подход будет продолжать функционировать.-maxdepth 1
вfind
).