使用 shlex 的 Python 子进程 chmod 上的无效模式错误



我正在使用python中的子进程来更改Linux上当前目录中新创建文件的权限。

当我在命令行上运行以下内容时,它按预期工作:

chmod 664 `find /path/path -type f`

我正在尝试使用以下方法在我的 python 代码中实现这一点:

perms = "chmod 664 `find /path/path -type f`"
command = shlex.split(perms)
subprocess.call(command)

其中命令如下:

['chmod', '664', '`find', '/path/path', '-type', 'f`']

我在控制台中收到以下错误:

chmod: invalid mode: `-type'

是否与特殊字符有关?

谢谢

特殊字符``必须用外壳来解释!

您必须使用 :

perms = "chmod 664 `find /path/path -type f`"
subprocess.call(perms, shell=True)

或者,您应该首先执行find /path/path -type f并使用它输出来构建命令

names = subprocess.check_output("find /path/path -type f")
command = shlex.split('chmod 664 ' + names)
subprocess.call(command)

最新更新