Rsync仅包含包含这些文件的特定文件和目录

时间:2015-10-03 05:02:27

标签: bash synchronization rsync

假设我有像

这样的目录结构
final int greenColor = R.color.green;
final int redColor = R.color.Red;    
ArrayList<BarEntry> entries = new ArrayList<>();
List<Integer> colors = new ArrayList<>();
for (int pos = 0; pos < values.size(); pos++) 
{
        Float value = values.get(pos);
        entries.add(new BarEntry(Math.abs(value), pos));
        colors.add(value >= 0 ? greenColor : redColor);
}

LineDataSet setComp1 = new LineDataSet(entries, "Company 1");
// sets colors for the dataset, resolution of the resource name to a "real" color is done internally
setComp1.setColors(colors, Context);

然后,我只想同步扩展名为* .txt的文件。所以,我尝试使用如下命令:

src/
src/a/
src/a/1.ocf  
src/a/1.pdf  
src/a/1.txt
src/b/
src/b/2.ocf
src/b/2.pdf
src/b/2.xls
src/c/
src/c/3.doc
src/c/3.ocf
src/c/3.txt
src/d/

不幸的是,这个命令不仅可以同步* .txt文件,还可以同步所有目录。我不希望目录'b'和'd'同步,因为它不包含文件* .txt

有简单的方法吗?

1 个答案:

答案 0 :(得分:3)

您正在寻找的选项是-m来修剪空目录:

rsync -avvHm --include="*/" --include="*.txt" --exclude="*" src/ dst/