Команда Shell для копирования каталога в другое место - PullRequest
5 голосов
/ 17 декабря 2011

В моем веб-приложении мне нужно скопировать каталог и все его содержимое в другое место.Я хочу использовать shell_exec функцию PHP.Но я не могу найти команду для этого.

Ответы [ 3 ]

7 голосов
/ 17 декабря 2011

Вы можете использовать:

cp -r source dest

Копирует источник и все содержимое источника в dest.

3 голосов
/ 17 декабря 2011

Определите «местоположение» более точно.В любом случае:

  • , если каталог локальный: cp -r sourcedir destdir;
  • , если он удаленный, используя scp: scp -r sourcedir user@targetmachine:destdir
2 голосов
/ 17 декабря 2011

В руководстве по PHP есть страница для функции copy , где вы можете найти множество рецептов рекурсивного копирования каталога. Вот адаптированный рецепт:

function recurse_copy($srcdir, $dstdir) {
    $dir = opendir($srcdir);
    @mkdir($dstdir);
    while ($file = readdir($dir)) {
        if ($file != '.'  && $file != '..') {
            $src = $srcdir . '/' . $file;
            $dst = $dstdir . '/' . $file;
            if (is_dir($src)) { 
                recurse_copy($src, $dst); 
            } else { 
                copy($src, $dst); 
            }
        }
    }
    closedir($dir);
}
...