我编写了一个备份脚本,用于使用rsync
.出于维护目的,我将所有必要的选项存储在一个数组中,并在实际rsync
调用中使用它。
为了更好的可见性,每个选项在数组声明中都有自己的行。然而,我犯了一个巨大的错误,用 a/
而不是正确的 来终止每一行\
。
我的脚本运行的命令rsync
基本上是这样的:
rsync --verbose / --recursive / --archive / --progress source_folder destination_folder
下一个错误是不使用,--dry-run
但幸运的是,我足够快地按 Ctrl+C 脚本,同时它仍在构建文件列表并有很多错误说Permission denied (13)
.
这引出了我的问题:如果您尝试过上述命令(使用--dry-run
),您可能会注意到它rsync
正在遍历所有内容,/
我猜/
是(错误地?)用作源和目的地。
但是,如果我尝试运行
rsync --verbose test1/ --recursive test2/ --archive / --progress source_folder destination_folder
,而不是test1
被test2
解释为源和目标,rsync
则再次开始从 遍历/
。这是为什么?
我不知道source_folder
和是否destination_folder
会被完全忽略或稍后使用,因为我每次在rsync
构建文件列表时都会退出脚本。
另外,如果我没有中止/
用作源和目标的初始运行,可能会出现什么问题?会rsync
用自己覆盖每个文件吗?
答案1
--verbose --recursive --archive --progress
您告诉 rsync 要做的是使用源文件夹test1/ test2/ / source_folder
和目标文件夹的选项destination_folder
(如果这已经有帮助的话)。 (此外,您可能需要考虑去掉测试文件夹名称中的尾部斜杠,以获取完整的文件夹,而不仅仅是内容)