2024-06-16 18:08:31 发布
网友
我正在尝试使用子流程模块(python)执行以下命令
/usr/bin/find <filepath> -maxdepth 1 -type f -iname "<pattern>" -exec basename {} \;
但是,它给出了以下错误:
/usr/bin/find: missing argument to `-exec'
我猜这是为了逃避一些角色。但不知道如何克服。
如有任何帮助,我们将不胜感激。谢谢。
记住,需要转义",还需要在;之前使用转义\
"
;
\
您的命令可能类似于:
p1 = subprocess.Popen(["/usr/bin/find", "<filepath> -maxdepth 1 -type f -iname \"<pattern>\" -exec basename {} \\;"]) p1.communicate()
还有一个提示:使用语法r'bla'允许使用反斜杠而不必引用它们:
r'... -exec basename {} \;'
提供更好的可读性。
对另一个问题的回答有助于: 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 {} \;
记住,需要转义
"
,还需要在;
之前使用转义\
您的命令可能类似于:
还有一个提示:使用语法r'bla'允许使用反斜杠而不必引用它们:
提供更好的可读性。
对另一个问题的回答有助于: https://stackoverflow.com/a/15035344/971529
我不明白的是分号不需要转义,因为通常分号是由bash解释的,需要转义。
在bash中,这个等价词是:
相关问题 更多 >
编程相关推荐