Etwas wie das Folgende ist das, wonach ich suche, aber mein Code funktioniert nicht, egal wie ich flüchte {}und+ ;
find ./ -maxdepth 1 -type d -name '.*' -exec \
find {} -maxdepth 1 -type f -name '*.ini' -exec \
md5sum \{\} \\; \;
Nach diesen sehen Unix - & - Linux Frage fand ich , dass der folgende Code funktioniert, aber es ist nicht Verschachtelung Fund als solche, und ich vermute , dass es einen besseren Weg, diese besondere Arbeit zu tun.
find ./ -maxdepth 1 -type d -name '.*' \
-exec bash -c 'for x; do
find "$x" -maxdepth 1 -type f -name "*.ini" \
-exec md5sum \{\} \;; \
done' _ {} \+
Gibt es eine Möglichkeit zum Verschachteln, find -execohne dass eine Shell (wie oben) mit all ihren verrückten Zitier- und Fluchtbeschränkungen aufgerufen werden muss?
Oder kann dies direkt in einem einzelnen Suchbefehl unter Verwendung einer Mischung seiner vielen Parameter erfolgen?
findWenn finddies nicht möglich ist, warum wird findes dann als Werkzeug so verehrt (?)? zum Finden von Dateien zu verwenden? ... Ich habe später festgestellt, dass dies find ./ -maxdepth 2 -path '.*/*.ini' -type f -exec md5sum {} \+in meiner Situation gut funktioniert (der Verweis auf jw013 hat -prunemich auf der Manpage dazu geführt), aber ich frage mich, ob es eine robuste Methode ist (in Gattungen). Ich habe find(in weniger als einem Jahr Linux) noch nie so locateviel benutzt, wie ich brauchte, also ist es Neuland.
-pathTest ist genau das, was ich vorschlagen wollte. Damit solltest du in der Lage sein, alles zu tun , was du willst (Entschuldigung für den Verein Ace Of Base;))