![rsync 不工作——只想复制某些子目录和文件](https://linux22.com/image/583222/rsync%20%E4%B8%8D%E5%B7%A5%E4%BD%9C%E2%80%94%E2%80%94%E5%8F%AA%E6%83%B3%E5%A4%8D%E5%88%B6%E6%9F%90%E4%BA%9B%E5%AD%90%E7%9B%AE%E5%BD%95%E5%92%8C%E6%96%87%E4%BB%B6.png)
你好,假设我有一个这样的目录:
/
my_work
/dir1
keepdir1.ddd
keepdir2.ddd
file.cfg
(lots of files and directories I don't want)
/dir2
(same layout as dir 1)
因此,我想复制目录“my_work”和所有“dir1”、“dir2”等子目录。但在每个子目录中,我只想保留某些文件和某些目录。在我保留的目录中,我想递归地包含所有内容。
这是我到目前为止尝试过的但似乎没有什么可以复制:
rsync -rl --include-from=~/rsync_include /my_work ~/backup
rsync_include 的内容为:
+ *file.cfg
+ *keepdir*/*
- *
更新:
如果我使用 rsync -rvvl 运行,我会得到:
sending incremental file list
[sender] hiding directory my_work because of pattern *
delta-transmission disabled for local transfer or --whole-file
total: matches=0 hash_hits=0 false_alarms=0 data=0
sent 10 bytes received 12 bytes 44.00 bytes/sec
total size is 0 speedup is 0.00
答案1
最后一条规则- *
是忽略所有未明确匹配上述规则的内容。这是你想要的,但由于顶级文件夹不匹配,rsync 甚至不会下降进入它们,所以它没有机会匹配您指定的文件模式。
如果添加:
+ my_work/
+ my_work/dir*
明确地添加到文件顶部,那么它就应该可以工作。