2010-08-23 171 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/ 

基本上,第一个包括所有的目录,然后排除所有文件。