Вы можете удалить расширение, используя basename <file> <extension>
. Есть множество способов сделать это.
Использование цикла в bash
Например, просмотреть результаты из find
, а затем архивировать файл:
for f in $(find . -name '*.py')
do
zip "$(basename "$f" .py).zip" "$f"
done
Использование подоболочки в find
К сожалению, мы не можем использовать $(...)
в find ... -exec
напрямую. Однако мы всегда можем вызвать оболочку и сделать это там:
find . -name '*.py' -exec sh -c 'zip "$(basename "$0" .py)".zip "$0"' '{}' \;