@alexjet73

Удалить файлы терминалом Ubuntu из PHP?

Не получается удалить файлы в папке upload через терминал:
$output2 = exec('rm -f /usr/share/nginx/html/upload/*.{jpg,png} 2>&1',$output);

output и output2 пустые - ошибок нет. Однако файлы не удаляются. Все файлы и папки (согласно ls -l) имеют владельца www-data, php работает от www-data и по этой логике все должно работать.
В чём моя ошибка при работе с exec и терминалом, подскажите, пожалуйста?!

p/s Через терминал kitty из под рута эта команда работает.
..p/s foreach glob unlink не предлагать. Нужен именно терминал.
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
cesnokov
@cesnokov
<head>&nbsp;</head>
А почему вы не хотите стирать файлы средствами PHP, например так:
function remove_files( $dirname ) {
   $type = array( 'jpg', 'jpeg', 'png' );
   if ( is_dir($dirname) ) { $dir_handle = opendir( $dirname ); }
   if ( !$dir_handle ) { return false; }
   while( $file = readdir( $dir_handle ) ) {
      $ext = explode( '.', $file );
      if( !in_array( end( $ext ), $type ) ) { continue; }
      if ( $file != '.' && $file != '..' && !is_dir( $dirname . '/' . $file )) {
         unlink( $dirname . '/' . $file );
      }
   }
   closedir($dir_handle);
   return true;
}
remove_files( '/usr/share/nginx/html/upload' );
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы