我使用该系统命令删除文件夹及其内容:
system('/bin/rm -rf ' . escapeshellarg($path))
但我不知道如何仅删除其内容。我试过这个,但文件夹仍然满了:
system('/bin/rm -rf ' . escapeshellarg($path.'/*'))
有什么想法吗?
答案 0 :(得分:3)
这应该有效:
system('/bin/rm -rf ' . escapeshellarg($path) . '/*')
为什么?
escapeshellarg()
会引用$path
,它会将您的代码引导到shell命令:
rm -rf '/path/*'
并且system()
内部调用的shell将不再展开*
。
答案 1 :(得分:0)
这不起作用,因为你正在逃避星号,这导致bash忽略它。但是为了获得预期的结果,bash需要将星号扩展到目录中的所有文件。
有关详细信息,请访问http://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html#Filename-Expansion