我正在尝试查找本地计算机和远程服务器中的目录之间的差异。经过多次尝试和错误,我发现以下命令来自这里:
diff -q <('sudo ls -1aR /home/spyros/Daily-Backup') <(ssh [email protected] 'sudo ls -1aR Daily-Backup/')
这似乎对 ssh 的第二部分有效,但运行时会产生以下错误:
sudo ls -1aR /home/spyros/Daily-Backup: No such file or directory
查找我电脑中的文件。有什么想法吗?
答案1
diff -q <('sudo ls -1aR /home/spyros/Daily-Backup') <(ssh [email protected] 'sudo ls -1aR Daily-Backup/')
引号 ' 使 sudo 命令像一个字符串,而不是带有参数的 cmd。删除引号。这应该有效:
diff -q <(sudo ls -1aR /home/spyros/Daily-Backup) <(ssh [email protected] 'sudo ls -1aR Daily-Backup/')
答案2
使用带有 --dry-run 的 rsync。例如,这将告诉您如果要将本地副本写入服务器,需要进行哪些更改。请注意,rsync 语法很特殊,结尾的斜杠是相关的。
rsync -avP --dry-run --stats /home/spyros/Daily-Backup/ [email protected]:Daily-Backup/