Chcę znaleźć pliki w podkatalogach posortowane według znacznika czasu (utworzenia), od najnowszych.
Patrzyłem na stronę podręcznika, ale wydaje się, że pozwala ona tylko filtrować według znacznika czasu, a nie sortować według znacznika czasu.
Jakie opcje mogę przekazać, aby find
to osiągnąć? Alternatywnie, jak mogę połączyć to z innym narzędziem, na przykład sort
sortować według znacznika czasu?
find
nic zrobić w określonej kolejności posortowanej, poza wybieraniem między wyszukiwaniem głębokim a wyszukiwaniem głębokim.find
niż można przekazać do pojedynczego wystąpienials
.Odpowiedzi:
Chociaż rozwiązanie Paula jest ogólnie OK, wymaga więcej operacji wejścia / wyjścia niż po prostu:
źródło
find
zwróci miliony plików? Czy sort nie posortuje ich wszystkich jako jednej bardzo długiej listy? Czy nadal będzie skuteczny? (Zamiast sortować każdy katalog niezależnie.)find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 ls
Nowe wersjecut
mają opcję -z, więc nazwy plików z nowymi wierszami będą działać.xargs -0 ls -t
Podejście nie będzie działać poprawnie, gdy istnieje tak wiele plików, któryxargs
musi zacząćls
więcej niż raz, ale takie podejście będzie nadal funkcjonować.-maxdepth 1
nafind
).