镜像到转换后的文件结构

发布于 2024-10-26 06:12:33 字数 626 浏览 4 评论 0原文

我想同步一个文件结构到另一个文件结构,但是转换一个文件结构,例如:

filesStructureA/ --[transformation(T)]--> filesStructureB/

是否可以使用rsync来做到这一点?我看到 rsync 接受文件列表作为输入(--files-from),但并不真正知道如何对每个文件应用转换 T...

换句话说,是吗?可以使用 rsync 动态重命名文件吗?

谢谢。

例如,从 src/dst/,抑制目标路径中出现的每个 bar/,例如:

src/foo/hi.txt
src/foo/bar/hey.txt
src/foo/bar/bar/lorem/bar/hoy.txt

sed 's/bar\///'          <- [Transformation function]

dst/foo/hi.txt
dst/foo/hey.txt
dst/foo/lorem/hoy.txt

I'd like to synchronize a files structure to another, but transformed one, eg:

filesStructureA/ --[transformation(T)]--> filesStructureB/

Is it possible doing this with rsync? I saw rsync accept a list of files as input (--files-from), but don't really know how to apply the transformation T for each of one...

In other words, is it possible with rsync to rename files on the fly ?

Thank you.

for an example, from src/ to dst/, suppress every bar/ occurences in the destination path, eg:

src/foo/hi.txt
src/foo/bar/hey.txt
src/foo/bar/bar/lorem/bar/hoy.txt

sed 's/bar\///'          <- [Transformation function]

dst/foo/hi.txt
dst/foo/hey.txt
dst/foo/lorem/hoy.txt

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿嘿嘿 2024-11-02 06:12:34

答案是pax

cd src/
find . -type -f -path '*bar/*' -print0 | pax -0 -rw -v -Y -Z -s '/\/bar//g' ../dst/
cd ..

Answer is pax:

cd src/
find . -type -f -path '*bar/*' -print0 | pax -0 -rw -v -Y -Z -s '/\/bar//g' ../dst/
cd ..
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文