我需要:
/sourcefolder/*
在保留用户权限的情况下,将树中的所有文件夹(包含所有文件,包括隐藏文件)复制到/destfolder/
如果与某个文件有冲突(中存在同名文件
destfolder
),则- 使用标准规则重命名目标文件夹中的文件,例如在文件名中添加“old”前缀(readme.txt 将变为 oldreadme.txt)
- 将冲突的文件从源复制到目标
文件夹之间的冲突应该是透明的 - 如果源文件夹和目标文件夹中都存在相同的目录,则保留它并根据上述规则递归复制其内容。
我还需要一份 .txt 报告,描述添加到目标文件夹的所有文件/文件夹以及已重命名的文件。
我怎样才能做到这一点?
答案1
rsync 可能就是您想要的。
以 root 身份尝试如下操作:
rsync --backup --suffix=old --verbose --archive /源文件夹/ /目标文件夹/
有关选项的详细信息,请参阅“man rsync”。
输出(希望)适合您的文本报告。因此,请在末尾运行以下命令:
> 报告.txt