Coś takiego jest tym, czego szukam, ale mój kod nie działa, bez względu na to, jak uciekam {}i+ ;
find ./ -maxdepth 1 -type d -name '.*' -exec \
find {} -maxdepth 1 -type f -name '*.ini' -exec \
md5sum \{\} \\; \;
Po zobaczeniu tego pytania dotyczącego systemu Unix - i - Linux stwierdziłem, że poniższy kod działa, ale nie jest zagnieżdżaniem znalezionego jako takiego i podejrzewam, że jest lepszy sposób na wykonanie tego konkretnego zadania.
find ./ -maxdepth 1 -type d -name '.*' \
-exec bash -c 'for x; do
find "$x" -maxdepth 1 -type f -name "*.ini" \
-exec md5sum \{\} \;; \
done' _ {} \+
Czy istnieje jakiś sposób na zagnieżdżanie się find -execbez potrzeby wywoływania powłoki (jak wyżej), z wszystkimi jej zawrotnymi cytatami i ograniczeniami ucieczki?
Czy można to zrobić bezpośrednio za pomocą jednego polecenia find, używając kombinacji wielu jego parametrów?
find, ale jeśli findnie możesz tego zrobić, to dlaczego jest findtak czczony (?) Jako narzędzie- do użycia przy wyszukiwaniu plików? ... Kolejno stwierdziłem, że find ./ -maxdepth 2 -path '.*/*.ini' -type f -exec md5sum {} \+działa dobrze w mojej sytuacji (odniesienie jw013 -prunedoprowadziło mnie do tego na stronie podręcznika), ale zastanawiam się, czy jest to solidna metoda (ogólnie). Nigdy tak naprawdę nie korzystałem find(w mniej niż rok z Linuksa), ponieważ locatezrobiłem prawie wszystko, czego potrzebuję, więc jest to nieznane terytorium.
-pathTest jest dokładnie to, co miałem zamiar zaproponować. Dzięki temu powinieneś być w stanie zrobić wszystko, co chcesz (przepraszam za skojarzenie Ace Of Base;))