首页 > 解决方案 > 用于删除 NFS 挂载文件夹中的文件的 Python subprocess.run 不会删除服务器中的文件

问题描述

我需要在我的 Python 脚本中使用 shell 命令来删除 NFS 安装文件夹中的所有文件和文件夹。

sudo mount IP:PATH/server_nfs/ PATH/client_nfs/

当我subprocess.run()以通常的方式调用时,该命令确实删除了客户端文件夹中的所有文件,但文件仍保留在相应的服务器文件夹中(这对我来说毫无意义)。

print(subprocess.run(["sudo", "rm", "-rf", "PATH/client_nfs/*"]))

CompletedProcess(args=['sudo rm -rf PATH/client_nfs/*'], returncode=0)

但是,如果我subprocess.run()调用 shell,它会正常运行(删除双方的文件)。

print(subprocess.run(["sudo rm -rf PATH/client_nfs/*"], shell=True))

CompletedProcess(args=['sudo', 'rm', '-rf', 'PATH/client_nfs/*'], returncode=0)

你知道为什么会这样吗?

标签: pythonshellsubprocessnfs

解决方案


推荐阅读