嗨,我正试图使用python的fork和execl来创建一个新的bash进程并删除一个目录“tentdir”。
我写了以下代码:
import os
pid = os.fork()
if pid == 0:
os.execl('/bin/rm', 'rm-rf', 'temptdir') # temptdir is a directory in home folder.
我希望它会创建一个新的bash进程,并在bash中运行以下命令:
rm -rf temptdir
删除temptdir目录,但它显示:
rm-rf: temptdir: is a directory
知道它为什么不删除目录吗?还有怎么解决?
最后,在python文档中,python execl命令的fortmat为:
execl( path, arg0, arg1, ...)
但如果我跑:
os.execl('/bin/echo','hello')
它什么都没印。为什么要添加额外的“echo”参数,如:
os.execl('/bin/echo','echo','hello')
最佳答案
您需要分别传递参数。因为-r
和f
是rm
的独立参数。
import os
pid = os.fork()
if pid == 0:
os.execl('/bin/rm', 'rm', '-rf', 'temptdir') # temptdir is a directory in home folder.
关于python - rm -rf不会通过python fork execl脚本删除目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52620378/