我需要执行以下命令:
find PATH -type f -exec du -h --all {} +
这是我的尝试:
import subprocess
result = subprocess.Popen(["find", PATH, "-type", "f", "-exec", "du", "-h", "--all", "{}", "+"], shell=True, stdout=subprocess.PIPE).communicate()[0]
print(result)
结果我得到了一些垃圾。我做错了什么?
最佳答案
当 Popen()
的第一个参数是一个应该由 shell 解析的字符串时,您应该只使用 shell=True
。如果它是一个数组,您已经完成了必要的解析,并且不应使用 shell=True
。
关于python - 如何在 python 中执行复杂的 "find"linux shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45078097/