Синтаксис:
-exec [command] ... {} ... ;
-exec [command] ... {} ... +
Так как ;
является частью синтаксиса оболочки, необходимо его избежать, чтобы найти
увидел в нем аргумент:
find .. -exec dirname {} \;
Кстати, -iname
не использует регулярные выражения - просто используйте *.jpg
без $
.
Теперь меня поражает, что с GNU обнаружили, что нам вообще не нужно использовать dirname
. Вместо этого:
find ... -printf "%h\n"