![rsync 以特定数字开头的所有目录](https://linux22.com/image/1349600/rsync%20%E4%BB%A5%E7%89%B9%E5%AE%9A%E6%95%B0%E5%AD%97%E5%BC%80%E5%A4%B4%E7%9A%84%E6%89%80%E6%9C%89%E7%9B%AE%E5%BD%95.png)
我的目录中有数千个子目录:
/home/tmp/
1
12
123
1234
2345
234
3456
345
34
每个子目录又有数百个子目录,如果第一级子目录匹配,我想 rsync ...
我需要的是一种方法来复制/rsync 仅以给定数字 [1-9] 开头的目录......
我认为我想要的是基本上可以让我使用通配符来匹配的东西
rsync -rzvvhP remotehost:/home/tmp/1* /home/tmp/
我想要 rsync 同步
/home/tmp/1/
/home/tmp/12/
/home/tmp/123/
/home/tmp/1234/
目录及其拥有的任何子目录,但不包括以不同数字开头的任何第一级目录......
/home/tmp/234/
/home/tmp/2345/
........./3*/
........./4*/ etc..
我尝试过的:
rsync -rzvvhP --exclude='*' --include-from=1.txt remotehost:/home/tmp/ /home/tmp/
其中 1.txt 包含:
1
12
123
1234
当我使用 2.txt 执行此操作时,rsync 似乎仍然会运行以 1 和 3 等开头的所有目录......
我该如何做,以便我可以使用一个命令来仅 rsync 以任何给定数字开头的目录?
答案1
您可以尝试使用通配符进行如下操作:
/home/tmp/{1,12,123,1234}
生成{}
每个逗号分隔的选项,因此相当于:
/home/tmp/1 /home/tmp/12 /home/tmp/123 /home/tmp/1234