我使用该系统命令删除文件夹及其内容:
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-扩展