rsync include/exclude模式

目录结构:

./
├── d_a1/
│   ├── d_b1/
│   │   ├── d_c1/
│   │   │   ├── f.d1
│   │   │   └── f.d2
│   │   │   └── f.d3
│   │   ├── d_c2/
│   │   ├── f.c1
│   │   └── f.c2
│   │   └── f.c3
│   ├── d_b2/
│   │   ├── d_c1/
│   │   └── d_c2/
│   ├── f.b1
│   └── f.b2
│   └── f.b3
├── d_a2/
│   ├── d_b1/
│   │   ├── d_c1/
│   │   └── d_c2/
│   └── d_b2/
│       ├── d_c1/
│       └── d_c2/
├── f.a1
└── f.a2
└── f.a3
  • 同步所有:
$ rsync -avz src/ dst/
  • 只同步d_a1目录及其子路径:
$ rsync -avz --include='/d_a1/***' --exclude='*' src/ dst/
$ rsync -avz --include='/d_a1/' --exclude='/*' src/ dst/
  • 只同步d_a1/d_b1目录及其子路径:
$ rsync -avz --include='/d_a1/' --include='/d_a1/d_b1/***' --exclude='*' src/ dst/
  • 只同步第一层文件及目录,不包含子路径:
$ rsync -avz --include='/*' --exclude='*' src/ dst/
  • 只同步前两层文件及目录,不包含子路径:
$ rsync -avz --include='/*' --include='/*/*' --exclude='*' src/ dst/

同步子路径,需要先把父目录include进来

  • 只同步后缀为1的文件(会包括所有空目录)
$ rsync -avz --include='*.*1' --include='*/' --exclude='*' src/ dst/
  • 不同步后缀为2的文件及目录
$ rsync -avz --exclude='*2' src/ dst/
  • 不同步后缀为2的目录
$ rsync -avz --exclude='*2/' src/ dst/

你可能感兴趣的:(rsync include/exclude模式)