2014-10-10 70 views
1

我正在開發我的備份pet project並找不到我非常需要的rsync功能。Rsync遞歸只有新目錄

想象一下:

parent1/ 
     dir1/ 
      file1 

parent2/ 
     dir2/ 
      file2 

如果我動 「DIR1」 到 「parent2」 是這樣的:

parent1/ 


parent2/ 
     dir1/ 
      file1 
     dir2/ 
      file2 

它留下沒有其他選擇,而不是遞歸同步parent2/,否則file1將被省略。我想要做的是強制rsync遞歸同步新創建dir1,但省略dir2

任何想法?

+0

這不需要rsync跟蹤新添加的文件並默認排除它們嗎?這超出了rsync的範圍。但是,您可以將該跟蹤作爲程序的一部分來實施。 Arq是這樣做的,我只是不知道默認行爲是什麼東西被移動... http://www.haystacksoftware.com/arq/ – mddubs 2014-10-10 18:37:06

+0

我剛在我的問題(固定)中發現了一個錯誤,我想從遞歸中排除不變的目錄,並且僅遞歸新的目錄。 – 2014-10-11 07:08:41

回答

0

這似乎不可能,因爲rsync需要在每個文件夾中查看發生了什麼變化。

最好的選擇仍然是一個--update,爲了傳輸的所有文件,並跳過它存在於目標,並有修改時間比源文件新的文件。


另一種選擇:

對於文本文件,就像Git源控制系統的確會忽略dir2,因爲它會檢測其相關SHA1沒有改變(不需要該文件夾中去)。