有没有办法在 rsync --files-from 文件中添加注释?

use*_*989 11 rsync

我有一个 rsync 用作 --files-from 的文件:

dir1
dir2
dir3
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样在每个目录条目上方添加注释:

# my dir1 comment
dir1

#dir2 comment
dir2

#yet another comment
dir3
Run Code Online (Sandbox Code Playgroud)

但 rsync 抱怨“没有这样的文件或目录”

到目前为止,我已经尝试过 #,//,--,,SPACE

有没有办法注释掉/禁用条目?

rob*_*7cc 18

根据man页面rsync:

"... FILE 中的空行和以 ';' 开头的行 或 '#' 被忽略..."

我只是跑了一个快速测试,确实#和;行会被忽略。

  • 您的页面确实显示以 # 开头的行是注释:https://linux.die.net/man/1/rsync 表示“...当从文件中读取规则时,空行被忽略,注释也是如此以 lq#rq 开头的行......”(lq 和 rq 是左引号和右引号的符号......我不知道为什么该网页将引号呈现为这些缩写)。无论如何,rsync 排除文件中的 # 是注释。也许您引用的其他手册页很旧。您可以在此处查看 rsync 日志历史记录:https://git.samba.org/?p=rsync.git;a=log (2认同)

Dom*_*Dom 10

做一个grep -v '^#' file > /tmp/filetmp然后启动你的rsync/tmp/filetmp

根据您的 shell,您可以避免使用临时文件(这在 Bash 中有效):

rsync --files-from <(grep -v '^#' file) …
Run Code Online (Sandbox Code Playgroud)

看起来很奇怪的<( … )语法就是 Bash 所说的进程替换。

  • 我为您将模式添加到您的 grep 中 - 我想这就是您的意思...我还将添加一个 bash 技巧,如果您不同意,请随时恢复一个或两个编辑。 (3认同)