我有一个文件和dirs的目录。我想要的是从该目录制作几个文件夹的rsync副本。例如,假设我有这个:
/home/user
-- drwxr-xr-x folderA
-- drwxr-xr-x folderB
-- drwxr-xr-x folderC
-- -rw-r--r-- file.1
-- -rw-r--r-- file.2
我想使用rsync复制folderA和folerB。我创建了文件rsync_folders.txt
+ /folderA/**
+ /folderB/**
我的问题是rsync将始终复制文件,除非它匹配排除模式。但是,如果我添加
- /**
没有任何内容被复制,因为rsync首先匹配排除模式。
有什么想法吗?
注意:我无法列出要排除的所有文件夹和文件。它会不时发生变化。
答案 0 :(得分:14)
使用rsync -av src1 src2 src3 ... dst
或将所有想要rsync的文件夹放在文本文件中(每个文件夹在一个单独的行中)并使用rsync -arv --files-from=sources.txt dst
。
请注意,默认情况下-a
隐含--recursive
,但在使用--files-from
时则不然,因此在这种情况下必须明确指定-r
。