我有一个 rsync 用作 --files-from 的文件:
dir1
dir2
dir3
我希望能够在每个目录条目上方添加注释,如下所示:
# my dir1 comment
dir1
#dir2 comment
dir2
#yet another comment
dir3
但 rsync 抱怨“没有这样的文件或目录”
到目前为止我已经尝试过 #,//,--,,SPACE
有没有办法注释掉/禁用条目?
答案1
根据man
页面上rsync:
“...FILE 中的空行和以 ';' 开头的行或‘#’被忽略...”
我刚刚进行了快速测试,确实#
,;
线条被忽略了。
答案2
执行 agrep -v '^#' file > /tmp/filetmp
然后启动 rsync/tmp/filetmp
根据您的 shell,您也许能够避免临时文件(这在 Bash 中有效):
rsync --files-from <(grep -v '^#' file) …
<( … )
Bash 称之为这种看起来很奇怪的语法流程替代。
答案3
目前状态(rsync 版本 3.1.1 协议版本 31):从#
或开始的所有行;
甚至都man
没有相关信息(我的情况不同,我想复制一个名为 的文件;_char
,但很惊讶它甚至没有使用 - -from0 选项 - 更改行后./;_char
它开始工作)。似乎使用与选项--include-from
或--exclude-from
对于这两个选项man
页面提到的 相同的解析函数:
Blank lines in the file and lines starting with ’;’ or ’#’ are ignored