繁体   English   中英

带有 --exclude 标志的 rsync 不起作用?

[英]rsync with --exclude flag is not working?

我一直在努力解决这个问题,我想在执行 rsync 时排除一个目录,但它没有被排除。 您能否在这种情况下提供帮助,问题出在哪里以及如何解决? 谢谢

#!/bin/bash
SRC="/home/nnice/Desktop/Scripts/"
DST="/home/nnice/Desktop/Personal/Linux/Notes/My_Fedora_Desktop/Scripts/"
EXCLUDE="{'*.log','/home/nnice/Desktop/Scripts/XDM/'}"
rsync --delete -P -arcvzh --exclude=${EXCLUDE} $SRC $DST
#rsync --delete -P -arcvzh --exclude={'*.log','/home/nnice/Desktop/Scripts/XDM/'} $SRC $DST

XDM 目录仍在同步中。 而且我不想使用 --exclude-from 标志。 我低于 output,这表明 XDM 目录正在同步。

sending incremental file list
./
XDM/
XDM/install.sh
         55.35M 100%  338.16MB/s    0:00:00 (xfr#1, to-chk=6/96)
XDM/readme.txt
            650 100%    4.07kB/s    0:00:00 (xfr#2, to-chk=5/96)
XDM/xdm-setup-7.2.11.tar.xz
         55.34M 100%  165.46MB/s    0:00:00 (xfr#3, to-chk=4/96)

sent 110.71M bytes  received 116 bytes  221.43M bytes/sec
total size is 110.75M  speedup is 1.00

rsync 不理解排除过滤器中的大括号。 每个排除都采用一个规则。

大括号实际上被 bash 解释为大括号扩展 但是,这种扩展不会发生在带引号的字符串内。

仅列出多个排除选项会更简单。

但是,如果您想使用大括号快捷方式,您可以执行以下操作:

#!/bin/bash
SRC="/home/nnice/Desktop/Scripts/"
DST="/home/nnice/Desktop/Personal/Linux/Notes/My_Fedora_Desktop/Scripts/"
EXCLUDE=( --exclude={'*.log','/home/nnice/Desktop/Scripts/XDM/'} )
rsync --delete -P -arcvzh "${EXCLUDE[@]}" $SRC $DST

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM