假设采用以下结构,则需要对其进行同步:
pack('P')
现在,我想使用+和-来In-和排除InExCl.list中的内容: 可以正常工作,文件2.txt和2.txt〜显示在备份中,而1.txt不显示:
unpack('P')
对于子目录,我尝试了类似的操作(首先是加号,是减号),以便排除subDir1,但将A.html和subDir2包含在AA.html中,并将subDir2包含在B.txt中:
/Data
/subDir1
A.html
/subDir1a
AA.html
/subDir2
B.html
1.txt
2.txt
2.txt~
rsync -aAHSXrv --include-from=$InExCL $Source $Destination
结果:subDir2很好,subDi1显示为空,甚至没有提及subDir1a。
有人建议我,这怎么做对?谢谢。
答案 0 :(得分:0)
我唯一想到的方法是将.rsync-filter
文件放入
Data/subDir1/
包含以下三行。
include /*/
exclude /*
exclude /.rsync-filter
第一个将包含此文件中的所有目录,而
第二个将排除所有内容。顺序很重要
因为应用了第一个匹配的规则。所以第一行确保
即使我们希望排除Data/subDir1/
中的所有非目录文件,也会处理所有目录。
rsync 手册页包含所有详细信息。只需查找-filter ,然后 过滤器规则。
Data
├── 1.txt
├── 2.txt
├── 3.txt
├── subDir1
│ ├── A.html
│ ├── .rsync-filter
│ └── subDir1a
│ └── AA.html
└── subDir2
└── B.html
在命令rsync -rvt -F Data/ dest
选项-F
使 rsync 考虑 .rsync-filter 文件
出现在每个目录中。
目标如下所示。
dest
├── 1.txt
├── 2.txt
├── 3.txt
├── subDir1
│ └── subDir1a
│ └── AA.html
└── subDir2
└── B.html
答案 1 :(得分:0)
谢谢钱德拉,
现在我发现了另一个似乎适用于目录的解决方案:
+ subDir1/subDir1a
- subDir1/*
关于子目录,您的结果(和期望的)已实现
├── subDir1
│ └── subDir1a
│ └── AA.html
└── subDir2
└── B.html
你怎么看?