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 -exec
bez 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 find
nie możesz tego zrobić, to dlaczego jest find
tak 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 -prune
doprowadził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ż locate
zrobiłem prawie wszystko, czego potrzebuję, więc jest to nieznane terytorium.
-path
Test 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;))