2013-07-08 91 views
0

我有這樣的目錄樹:rsync的遞歸和排除特定目錄的內容,而不是目錄

dir1/ 
    file11 
    file12 
    file13 
    ... 
    file1548216479524594 
dir2/ 
    file21 
    file22 
dir3/ 
    dir31/ 
     file311 
     file312 
    dir32/ 
     file321 

我想rsync整個目錄樹,但沒有dir1目錄的內容。

如果我使用的基本rsync命令:

rsync --progress -v -ar --delete --exclude="dir1/*" src/ dst/<br> 

它的工作原理。但是如果我使用-n在執行前進行幹運行,它會持續很長時間,因爲dir1包含很多文件(我不知道爲什麼幹運行期間它會列出所有文件,即使是那些被排除的文件)。

如果我使用--exclude="dir1/",幹運行很快,但我沒有我的目錄樹。

如何使用我的整個目錄樹(不包括dir1的所有內容)快速執行rsync幹運行(避免遞歸的dir1文件非常多)?

+0

那麼問題是什麼? –

+0

現在的問題是:如何使用我的整個目錄樹(不包括dir1的所有內容)快速執行rsync幹運行(避免遞歸的dir1文件非常多)? –

+2

然後請將問題添加到您的「問題」中,以便人們不必掃描註釋以找出您要查找的內容。 –

回答

0

在最近版本的rsync,您可以使用-f選項,並且將文件放在「.rsync過濾器」中的src目錄,包含:

- dir1/*** 

這似乎爲我工作。我假設你的層次結構全部在「src /」之下。