我的文件夹结构如下:
- data
-- user 1
--- images
--- other stuff
-- user 2
--- images
--- other stuff
-- user 3
...
我想要rsync
所有images
文件夹。如果我使用包含/排除规则,我会遇到麻烦,因为我id
事先不了解用户。在实际应用中它是一个随机数。
我需要这样的东西data/**/images/
,这意味着获取数据文件夹下的所有图像文件夹。
ls
如果没有像管道或类似的作弊行为,这是否可行rsync
?
答案1
如果您想复制所有images
文件夹,那么一个简单的 shell 通配符就足够了。但是,您似乎希望保留目的地上的路径,因此您需要该-R
标志来执行此操作。
cd /path/to/data
rsync -iavR */images remote:/path/to/destination/
这将包括*/images
目标目录下目标上的源路径部分。所以如果你有源/path/to/data/12345/images/picnic.jpg
代码,你最终会被复制到/path/to/destination/12345/images/picnic.jpg
如果您正在以交互方式运行并且想要查看发生了什么,请添加--progress
或。--dry-run