在 python 子进程中使用 exec 查找命令给出错误

2024-02-10

我正在尝试使用子进程模块(python)执行以下命令

/usr/bin/find <filepath> -maxdepth 1 -type f -iname "<pattern>" -exec basename {} \;

但是,它给出了以下错误:

/usr/bin/find: missing argument to `-exec'

我猜这与转义某些字符有关。但不知道如何克服这个问题。

任何帮助表示赞赏。谢谢。


另一个问题的回答有帮助:https://stackoverflow.com/a/15035344/971529 https://stackoverflow.com/a/15035344/971529

import subprocess

subprocess.Popen(('find', '/tmp/mount', '-type', 'f',
              '-name', '*.rpmsave', '-exec', 'rm', '-f', '{}', ';'))

我不明白的是分号不需要转义,因为分号通常由 bash 解释,并且需要转义。

在 bash 中,这个等价物是:

find /tmp/mount -type f -name "*.rpmsave" -exec rm -f {} \;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 子进程中使用 exec 查找命令给出错误 的相关文章

随机推荐