Odpowiednik Solaris dla głębokości / suszonych śliwek?

10

Próbuję znaleźć jakieś pliki w katalogu. Domyślnie znalezisko commandprzeszukuje określony przeze mnie katalog i jego podkatalogi.

Próbowałem użyć depth/maxdepthi prune, ale nic nie pomogło temu zaradzić. Czy ktoś może wskazać właściwy sposób korzystania z głębokości / suszonych śliwek w systemie Solaris?

Mój kod wygląda następująco:

find file_path -depth 1 -name '*.log'

Otrzymuję następujący błąd:

find: bad option 1
find: [-H | -L] path-list predicate-list
użytkownik295338
źródło

Odpowiedzi:

15

Mylisz dwie niepowiązane opcje, które mają nieco podobne nazwy:

  • -depthnie bierze żadnego argumentu. Jeśli jest obecny, informuje findo przetworzeniu zawartości katalogu przed przetworzeniem samego katalogu.
  • -maxdepth N (gdzie N jest liczbą całkowitą) ogranicza rekurencję do N poziomów podkatalogów.

-maxdepthOpcja jest rozszerzeniem znaleźć w niektórych wersjach find, ale nie na Solaris. Jest sztuczka findpolegająca na użyciu tylko standardowych opcji do przetwarzania katalogu bez rekurencji: użyj -prunew podkatalogach, ale wyklucz katalog najwyższego poziomu. Ponieważ jedynym sposobem dopasowania katalogu najwyższego poziomu jest nazwa, ustal nazwę na .(która nigdy nie będzie nazwą podkatalogu).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print
Gilles „SO- przestań być zły”
źródło
Miałem do czynienia z tym problemem, a to rozwiązanie pomogło. Spędziłem dzień, próbując znaleźć rozwiązanie tego problemu. Grrr, Solaris.
Kevin Teljeur
Czy widzisz jakiś problem z użyciem sed do usunięcia /./ find $ {katalog} / sh /. -imię . -o -typ d -prune -o -print | sed 's /\/\.\//\//'
Ethan Post
@EthanPost Możesz to zrobić, ale znajdź implementacje bez -mindepthi -maxdepthsą rasą znikającą. Jeśli twoje znalezisko ma -maxdepth, użyjfind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
Gilles 'SO- przestań być zły'
@Gilles Wystarczy cię złamać, gdy budujesz platformę, która może wymagać uruchomienia w takich okolicznościach! Ten rynek może kiedyś być moim chlebem i masłem! Dzięki za pomoc.
Ethan Post,