Rsync如何包含目录而不包含文件?

时间:2010-08-23 08:55:39

标签: linux backup 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-from执行此操作,而不指定每个文件夹,但是rsync -a data/* --exclude-from=exclude.rsync "" --onlyfoldersandnotfiles""之类的内容?

感谢您的帮助!

4 个答案:

答案 0 :(得分:26)

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

“两个-f参数分别表示”复制所有目录“,然后”不复制任何其他内容“。”

更多详情:http://psung.blogspot.com/2008/05/copying-directory-trees-with-rsync.html

答案 1 :(得分:17)

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

基本上,首先包括所有目录,然后排除所有文件。

答案 2 :(得分:0)

如果要同步除一个文件夹以外的所有内容,但仍要保留该排除文件夹的目录结构,则应执行以下操作:

$ rsync -a -f"+ /var/log/**/*/" -f"- /var/log/**/*" source/ destination/

请以exclude-listthe rsync command为例。

答案 3 :(得分:0)

rsync -a -f"-! */" source/ destination/

过滤规则表示“排除目录以外的任何内容。”