如果源和目標的時間戳相同,rsync 中的更新標誌是否會傳輸文件?文件不清楚
我只想
rsync
在 Ubuntu 14.04 上傳輸更改的文件和新文件。我不想每次都轉移一切。我不擔心檢查文件的內容是否真的改變了。存在類似的文章,但我不確定,因為文件與這些文章中所說的不一致。中的文件
rsync
說:
-u, --update
這會強制 rsync 跳過目標文件已存在且日期晚於源文件的任何文件。
http://ss64.com/bash/rsync_options.html
編輯:找到另一個(可能更官方的)文件頁面。它說:
-u, --update
跳過接收器上較新的文件https://download.samba.org/pub/rsync/rsync.html
我覺得這些措辭不好。首先,第一個說“日期”。我認為它實際上意味著“時間戳”。其次,更重要的是,這似乎意味著源和目標中具有相同時間戳的文件將被重新傳輸。文件明確表示,它只會在目標文件的時間戳(
T_d
)比源文件時間戳(T_s
源文件:跳過傳輸 ifT_d > T_s
意味著它在T_d <= T_s
.這對我來說是一個重要的問題,因為如果您想以盡可能少的工作(網路/io/cpu/時間)將所有新的和更改的文件從源文件夾傳輸到目標文件夾,更新標誌可能只是重新傳輸每次的一切。
或者也許我錯過了什麼,或者誤解了什麼?
(由於題外話,這篇文章被 stackoverflow.com 拒絕。添加它和答案,以防將來可能對人們有所幫助。)
man
在標誌的擴展中發現以下內容:
-u, --update
這會強制 rsync 跳過目標上存在的任何文件,並且修改時間比源文件新。(如果現有目標文件的修改時間等於源文件的修改時間,則如果大小不同,它將被更新。)
https://download.samba.org/pub/rsync/rsync.html
因此,相等的情況檢查文件的大小,並且僅在它們不同時才傳輸。我對此很好。