Das Argument zu -exec
ist normalerweise das Zeug zwischen dem -exec
und dem\;
Ich würde zuerst versuchen, ein Leerzeichen zwischen {}.contents
und 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, find
als sich mit der -exec
Klausel zu mischen . Ich schlage etwas wie das Folgende vor. Ich erinnere daran, dass dies $OLDPWD
das 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 $OLDPWD
am Ende ein a hinzufügen, um Sie zu Ihrem Ausgangspunkt zu bringen, wenn Sie möchten