我有两台机器,nearbyMachine
和remoteMachine
。
在nearbyMachine
,正在文件夹中创建文件。
nearbyMachine/
myFiles/
file1
file2
file3
...
remoteMachine
我也想拥有这些文件——但要按目录分类:
remoteMachine/
filesByCategory/
loveLetters/
file1
file2
...
otherLetters/
file3
...
...
所以我...
- 将文件夹中的所有文件复制到
remoteMachine
Internet 上的临时文件夹中, - 运行一个软件,
remoteMachine
从临时文件夹中删除已存在于 的任何子文件夹中的所有文件filesByCategory
。 - 手动将文件排序到 的现有或新的子文件夹中
filesByCategory
。
问题是:随着时间的推移,第一步需要的时间越来越长。几个小时。而且不雅。
有什么方法(例如使用 rsync)可以让我仅复制远程计算机上尚不存在的文件吗?或者至少获取我必须复制的文件列表?
据我所知,所有同步程序都只能比较两边的一个目录。
答案1
更快捷的方法是选择性地将
remoteMachine
比上次同步更新的文件复制到临时文件夹。然后,您只需将一些文件排序到其文件夹中即可。
一个简单的脚本就可以完成这项工作。您可以使用以下实用程序
寻找
列出所有较新的文件。该newerXY
参数可能很有用,以及脚本touch
在复制结束时将使用的参考文件。
-newerXY reference
Succeeds if timestamp X of the file being considered is newer
than timestamp Y of the file reference. The letters X and Y
can be any of the following letters:
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
t reference is interpreted directly as a time
要使用的参数可能是-newermm
。
您的脚本可以使用此生成的文件列表作为命令find
的参数cp
,将其复制到远程服务器,然后您可以在其中将它们排序到各自的文件夹中。