我正在使用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)