PHP exec rm -Rf не работает для подкаталогов - PullRequest
3 голосов
/ 27 августа 2010

Я пытаюсь удалить все содержимое в определенной папке, но это, похоже, не влияет на подпапку, но должно, потому что команда bash делает это из консоли.

system('rm -Rf some_dir/*');

Ответы [ 2 ]

2 голосов
/ 29 августа 2010

Звездочке в этой команде нет необходимости. Если вы хотите удалить каталог вместе с файлами, также удалите косую черту. Покидая слеш, вы удалите файлы, но сохраните каталог.

Также проверьте комментарии на этой странице: http://php.net/manual/en/function.unlink.php

1 голос
/ 28 августа 2010

Вероятно, это связано с тем, что пользователь, выполняющий сценарий, не имеет прав на удаление каталога (ов) или оболочка не находится в нужном каталоге.

Если вы запускаете это через apache, скорее всегоПроцесс принадлежит www-данным.Если каталог "some_dir" не разрешает доступ для записи по www-данным, он не будет работать.

Поскольку вы используете относительный путь (очень опасный), вам необходимо убедиться, чтоскрипт выполняется в правильном каталоге.Я бы посоветовал вам изменить путь на абсолютный, если вы можете - "rm -rf /path/to/some_dir".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...