gpt4 book ai didi

linux - rsync 使用包含选项仅复制某些类型的文件

转载 作者:IT老高 更新时间:2023-10-28 12:26:11 26 4
gpt4 key购买 nike

我使用以下 bash 脚本仅复制具有特定扩展名的文件(在本例中为 *.sh),但它仍会复制所有文件。怎么了?

from=$1to=$2rsync -zarv  --include="*.sh" $from $to

最佳答案

我认为 --include用于包含被 --exclude 排除的文件子集,而不是只包括那些文件。换句话说:您必须考虑 include 的含义不排除

试试吧:

rsync -zarv  --include "*/" --exclude="*" --include="*.sh" "$from" "$to"

对于rsync 3.0.6或更高版本,需要修改顺序如下(见注释):

rsync -zarv --include="*/" --include="*.sh" --exclude="*" "$from" "$to"

添加 -m flag 将避免在目标中创建空目录结构。在 3.1.2 版本中测试。

所以如果我们只想要 *.sh 文件,我们必须排除所有文件 --exclude="*" , 包括所有目录 --include="*/"并包含所有 *.sh 文件 --include="*.sh" .

您可以在man page包含/排除模式规则部分找到一些很好的示例。

关于linux - rsync 使用包含选项仅复制某些类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11111562/

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