Das Argument zu -execist normalerweise das Zeug zwischen dem -execund dem\;
Ich würde zuerst versuchen, ein Leerzeichen zwischen {}.contentsund zu setzen, \; aber ich habe es nicht getestet, um zu sehen, was los ist
Für Ihren anderen Punkt ist es wahrscheinlich einfacher, den Startpunkt zu ändern, findals sich mit der -execKlausel zu mischen . Ich schlage etwas wie das Folgende vor. Ich erinnere daran, dass dies $OLDPWDdas alte Arbeitsverzeichnis von vor dem letzten ist cd (zumindest in bash ist es, in tsch ist es $owd)
cd targetdirectory; find $OLDPWD -type f -name "*.zip" -exec unzip {} -d {}.contents /;
Sie können es verschönern, indem Sie ; cd $OLDPWDam Ende ein a hinzufügen, um Sie zu Ihrem Ausgangspunkt zu bringen, wenn Sie möchten