在 bash 脚本中,我使用 rsync 来制作目录的精确副本:
rsync --verbose --archive --update --delete \
~/cat-pics/ \
~/top-secret/
但我如何获得有关是否已转移任何内容的反馈?我如何知道该操作是否更改了任何文件?特别是,我想知道是否添加、更改或删除了任何文件。
我看到了这个--stats
选项,但它的输出似乎是为人类而不是 bash 脚本制作的。
有什么指点吗?
答案1
使用-i
( --itemize-changes
) 获取有关每个文件更改的输出。
每个输出行的第一个字符(默认格式)指示文件发生了什么。如果需要,您可以将格式修改为与您的解析更相关的格式。
'<' 表示文件正在传输到远程主机(发送)。
'>' 表示文件正在传输到本地主机(已接收)。
“c”表示该项目正在发生本地更改/创建(例如创建目录或更改符号链接等)。
'h' 表示该项目是到另一个项目的硬链接(需要 --hard-links)。
'.'表示该项目未更新(尽管它可能具有正在修改的属性)。
“*”表示逐项输出区域的其余部分包含消息(例如“删除”)。