我想对所有子文件夹的每个文件运行一个命令(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
正确的代码如何?
这里不需要函数。尝试:
find . -name "*.pyc" -exec sh -c "pycdc {} > {}_dec" \;
如果您使用进程替换并在循环上运行它会更安全,因为您的函数不会通过find
.
while read -r F; do
uncompyle "$F"
done < <(exec find . -type f -name '*.pyc')
尝试这个:
find . -path '*.pyc' -exec bash -c pycdc "$0" >"$0"_dec {} \;