[英]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.