rsync 按列表进行同步 - 墨天轮
2023-8-8
| 2023-8-8
0  |  0 分钟
rsync 中的 –files-from 参数可以按目录列表进行同步。
rsync 中有一个参数 –files-from 可以按照文件列表中的内容进行同步,即按目录列表进行同步。
首先要准备一个目录列表,比如:
如果需要同步以上三个目录,正常情况需要对每个目录执行 rsync。当使用 –files-from 参数时,可以批量对多个目录执行同步。
同步命令为:
其中文件列表 filelist.txt 中的目录使用的是绝对目录,此时需要以根目录为起点。
最终同步后的目录结构为:
如果不想保留完整目录,只想使用最后一级目录中的中的内容,加以增加一个参数 –no-relative
最终目录会去掉源目录中的父目录,只保留最终目录中的内容。效果有点像把多个目录中的内容合并到一个目录中。
文件列表也可以使用相对路径,但要求以源目录为起点,比如:
当执行 rsync 时,文件内容中的目录不是绝对路径,绝对路径应该是:
执行 rsync,类似先执行 cd 切换到源目录,再从文件列表中读取目录进行同步 :
如果可以,最好还是使用绝对路径,因为文件列表不支持使用../ 来切换路径。所有需要同步的目录在同一个目录下还好,如果跨目录使用相对路径就不支持了。
这个 –files-from 参数改变了 rsync 的默认行为,所以在比对文件时它会重复同步。为避免每次执行都重复拷贝,需要加一个 –size-only 参数,即只比对大小。
这里的目录端使用了本地目录,如果需要将文件传输到远程主机,换成远程目录即可,比如:
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。 > 本文由简悦 SimpRead 转码
目录