我想在所有子文件夹
的每个文件上运行一个命令(pycdc)#!/bin/sh
uncompyle () {
pycdc "$1" >"$1"_dec
}
export -f uncompyle
find . -type f -name '*.pyc' -exec bash -c 'uncompyle "$0"' {} \;
但是我得到了错误:
Bad MAGIC! Could not load file ./file/my.pyc
正确的代码怎么样?
答案 0 :(得分:3)
这里不需要功能。尝试:
find . -name "*.pyc" -exec sh -c "pycdc {} > {}_dec" \;
答案 1 :(得分:1)
如果您使用流程替换并在循环上运行它会更安全,因为您的函数不会通过find
导出。
while read -r F; do
uncompyle "$F"
done < <(exec find . -type f -name '*.pyc')
答案 2 :(得分:0)
试试这个:
find . -path '*.pyc' -exec bash -c pycdc "$0" >"$0"_dec {} \;