2014-04-26 116 views
-1

我有一个网站的两个子域,并且在两个帐户中都有一个文件夹与几个子文件夹。这是一个照片文件夹。在dirA.xyz.com照片文件夹由几个文件夹和子文件夹组成,而dirB.xyz.com照片文件夹由dirA中没有的新照片组成。但dirA照片文件夹中的子文件夹名称可能与dirB照片文件夹相同,但图像的最终名称会有所不同。所以我想将dirB照片文件夹的所有文件移动到dirA照片文件夹而不删除dirA照片文件夹数据。将几个文件移动到不同目录的Shell脚本

由于名称和文件夹结构各不相同,数据以百万为单位如何移动它们并合并,以使所有数据保持不变?

我试过使用zip。我压缩了dirB的照片文件夹,将它移动到dirA并尝试解压缩,但它不在dirA照片文件夹中,它将进入dirB照片文件夹。我已经尝试将dirB照片文件夹的所有者更改为dirA所有者,但它也无效。唯一的工作是移动命令,所以我怎样才能达到这个mv

mv /home/xyz/public_html/photo/ABC/Something/something/xyz.jpg /home/ABCDE/public_html/photo/ABC/Something/something/xyz.jpg 

所有文件都是jpeg或png。

回答

0

听起来像你需要rsync,与合并选项,而不是覆盖。如果你正在使用任何体面和最新版本的linux,你应该默认安装rsync。

源:/home/xyz/public_html/photo/ABC/Something/something/xyz.jpg
目标:/home/ABCDE/public_html/photo/ABC/Something/something/xyz.jpg

rsync -avibu --ignore-existing /home/xyz/public_html/photo/ /home/ABCDE/public_html/photo 

在这个命令我随机选择顶级目录。您可能想根据您的需求进行修改。还要注意源和目标上的尾部“/”。否则,文件的放置可能是关闭级别的目录。

-b使rsync备份文件存在于两个文件夹中,将〜追加到旧文件。您可以用--suffix string_of_your_choice -u让rsync传输跳过文件,这些文件在目标中的位置比源文件中更新

+0

thx您的建议,但我该如何做到这一点可以üPLZ指南 – sachin

+0

只需移动命令即可工作???/ – sachin

+0

请查看我做的更新和移动命令,如果您想覆盖目标目标上的文件,它将工作 – MelBurslan

相关问题