我在python中使用subprocess来更改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'
是否与特殊字符有关?
由于
答案 0 :(得分:2)
特殊字符``
必须由shell解释!
您必须使用:
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)