使用PHP的系统命令清空文件夹


Empty a folder with a system command with PHP

我使用该系统命令删除文件夹及其内容:

system('/bin/rm -rf ' . escapeshellarg($path))

但我不知道如何只删除它的内容。我试过了,但文件夹仍然满了:

system('/bin/rm -rf ' . escapeshellarg($path.'/*'))

知道吗?

这应该有效:

system('/bin/rm -rf ' . escapeshellarg($path) . '/*')

为什么

escapeshellarg()将引用$path,这将在您的代码中引导到shell命令:

rm -rf '/path/*'

并且system()内部调用的shell将不再扩展*

这不起作用,因为您正在转义星号,这导致bash忽略它。但要获得预期结果,bash需要将星号扩展到目录中的所有文件。

欲了解更多信息,请访问http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html#Filename-扩展