我刚在服务器上下载了MediaWiki软件用于安装。解压后,我发现PHP文件不可执行。
我运行了 chmod +x *.php*
(还有.php5文件),但在子目录中无法工作。
如何递归地将可执行标志添加到MediaWiki文件夹内所有PHP脚本中并扫描子文件夹?
提前感谢您的帮助。
在MediaWiki目录中使用bash
find . -iname "*.php" | xargs chmod +x
find . -iname '*.php' -print0 | xargs -0 chmod +x
该命令的作用是将当前目录及其子目录中扩展名为.php的所有文件设置为可执行。使用-print0参数和xargs命令的-0选项可以处理文件名中包含空格的情况。 - Robert Ros在子目录中它不起作用,因为*.php*
不匹配任何目录,因此不会包含它。
因此,您应该使用类似于find ./ -iname "*.php*" -exec chmod 755 {} \;
的东西来设置相应的位。
+
而不是\;
来关闭你的-exec
。 - sorpigal+
。这将在脚本中引入Bohrbug。如果列表足够大,则会超过可执行命令行的最大长度(好吧,我知道它比2 M字节更大,但仍然不安全)。 - karatedog
chmod +x */*.php
和chmod +x */*/*.php
即可。 - mariochmod a+x *.php*
将为用户、组和全局设置执行位。这是你无论如何都会隐式执行的操作,但更加清晰明了。根据你的情况,你可能只需要为用户和组设置可执行权限(chmod ug+x
),如果这样可以工作,那么你应该采用这种方式。 - sorpigala
或o
(或通过省略限定符来暗示a
)。最好使用ug+x,o-x
。 - Dennis Williamson