如何通过ssh区分目录

 xhhh5_236 发布于 2023-02-06 09:28

我试图递归地将本地主机中的目录与远程linux机器中的目录进行比较.但是,当我执行下一个命令时:

diff -r 'ssh admin@10.0.0.10:/home/admin' /home/admin

它不起作用:

diff:ssh admin@10.0.0.10:/ home/admin:没有这样的文件或目录

以递归方式比较目录内容的正确方法是什么?

提前致谢

3 个回答
  • 如果您不需要在文件中区分细节,只需获取目录/文件名的不同,然后尝试:

    (注意:需要设置"无密码的SSH登录",详情请查看以下网址:http: //www.linuxproblem.org/art_9.html)

    diff <(ssh admin@10.0.0.10 ls -R /home/admin) <(ls -R /home/admin)
    

    2023-02-06 09:30 回答
  • 尝试将"rsync"与"-n"选项一起使用,这只是"干运行"并告诉你它会做什么.

    2023-02-06 09:31 回答
  • 您可以通过安装远程目录sshfs,然后可以使用它diff -r来比较两个目录.

    或者,您可以find在两台机器上运行类似的命令来打印文件树(例如文件名,大小和日期),然后比较两者的输出diff.当然,这不会比较文件内容:

    diff <(ssh host find /home/admin -printf '"%8s %P\n"') \
         <(find /home/admin -printf '%8s %P\n')
    

    注意ssh调用中printf格式字符串的双引号.ssh继电器移除一层.

    2023-02-06 09:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有