rsync复制文件夹层次结构,但仅包含最后一个文件夹

时间:2016-09-14 11:23:17

标签: php copy exec rsync

我想知道这是否可行。基本上,我正在尝试编写一个非常基本的脚本来帮助我加快几个CMS系统安装的升级过程(我需要在某些文件夹中复制)。

所以我想说我有一个文件夹:

/home/sites/domain.co.uk/public_html/folder1/folder2/files

我需要做的是复制文件夹树,只复制files文件夹中的文件。

目前我正在使用rsync -a via:

<?php
exec("rsync -a /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>

这个问题不是创建以下内容:

/home/sites/domain.co.uk/copy/folder1/folder2/files

它创建

/home/sites/domain.co.uk/copy/files

有没有办法使用rsync复制以前的文件夹/结构,所以我最终得到了?

/home/sites/domain.co.uk/copy/folder1/folder2/files 

我很高兴使用rsync而不是创建完整的PHP脚本等

1 个答案:

答案 0 :(得分:0)

rsync的功能是将文件从一个位置传输到另一个位置或从一个服务器传输到另一个服务器(如果您具有对其他文件夹的root访问权限) 在您的以下示例中

<?php
exec("rsync -a /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>

服务器上必须有files个文件夹,其中包含文件,在copy文件夹中,所有这些文件都将被传输。

相反,您可以尝试使用以下命令来传输文件

<?php
exec("rsync -auv -e ssh --progress /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>

--progress将显示正在传输的文件。