gpt4 book ai didi

shell - rsync 排除一个目录但包含一个子目录

转载 作者:行者123 更新时间:2023-12-03 10:53:47 27 4
gpt4 key购买 nike

我正在尝试使用 rsync 将项目复制到我的服务器。
我在子目录中有项目特定的安装脚本

项目/规范/安装/项目1

我想要做的是排除 中的所有内容项目/规范目录但项目特定的安装目录:项目/规范/安装/项目1 .

rsync -avz --delete --include=specs/install/project1 \
--exclude=specs/* /srv/http/projects/project/ \
user@server.com:~/projects/project

但是像这样,specs 目录的内容被排除在外,但 install/project1 目录没有被包括在内。

我已经尝试了一切,但我似乎没有让它起作用

最佳答案

有时它只是一个细节。

只需更改您的包含模式,在包含模式的末尾添加一个尾随/即可:

rsync -avz --delete --include=specs/install/project1/ \
--exclude=specs/* /srv/http/projects/project/ \
user@server.com:~/projects/project

或者,作为替代,准备一个过滤器文件,如下所示:
$ cat << EOF >pattern.txt
> + specs/install/project1/
> - specs/*
> EOF

然后使用 --filter 选项:
rsync -avz --delete --filter=". pattern.txt" \
/srv/http/projects/project/ \
user@server.com:~/projects/project

有关更多信息,请转到 rsync(1) 手册页中的过滤规则部分。

关于shell - rsync 排除一个目录但包含一个子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8270519/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com