2010-08-23 220 views
15

我有一個目錄結構和文件這樣Rsync如何包含目錄但不包含文件?

data/ 
data/a.txt 
data/folder/ 
data/folder/b.txt 
data/folder/folder/ 
data/folder/folder/c.txt 
... 

a.txtb.txtc.txt是較大的文件是計算機生成的,並經常更新。他們不應該被備份的 - 但我想備份的目錄結構:

data/ 
data/folder/ 
data/folder/folder/ 

我怎麼能做到這一點使用rsync和--exclude-從,沒有指定每個文件夾,但類似rsync -a data/* --exclude-from=exclude.rsync "" --onlyfoldersandnotfiles""

感謝您的幫助!

+0

我想備份我的整個服務器。在我的服務器上,有80個GO數據,但每天更新60個GO,而這60個GO是大量子目錄中的文件。如果我不備份目錄結構,那麼更新文件的腳本就會失敗,因爲他們希望目錄存在。 我想要的是一個單一的rsync和exclude.rsync來備份我的服務器! – chicama 2010-08-23 14:39:28

回答

21
$ rsync -a -f"+ */" -f"- *" source/ destination/ 

「兩個-f參數的含義,分別爲‘複製所有的目錄’,然後選擇‘不要複製任何東西’。」

進一步瞭解詳細:http://psung.blogspot.com/2008/05/copying-directory-trees-with-rsync.html

+0

一個非常出色的解決方案。比'--include'和'--exclude'更簡單的基本用法。 – 2012-05-17 22:19:55

+19

恕我直言,這更可讀:'rsync -a --include ='* /'--exclude ='*'source/destination /' – 2013-05-27 04:25:32

8
rsync -a --include='*/' --exclude='*' source/ destination/ 

基本上,第一個包括所有的目錄,然後排除所有文件。