< 返回版块

lengyijun 发表于 2023-05-03 10:12

  • 对scp的封装, 自动跳过被 gitignore 的文件
  • 基本用法
    • 和 scp 一样, 不过传目录不需要 -r 参数
    • smartscp remote-host:remote_path local_path
      smartscp local_path remote-host
      smartscp local_path remote-host:remote_path
      
    • 如果目标目录是缺省的, smartscp 会自动根据原目录相对于 home 的偏移量, 计算目标目录
      • 比如source 是 ~/foo/bar, 那会自动传到远程的 ~/foo/bar
      • smartscp ~/foo/bar remote-host
        
  • 使用场景
    • 传 rust 项目的时候,避免传 target/
    • 传 nodejs 项目的时候, 避免传 node_modules/
  • 尚不支持的功能
    • 包含 : 的文件名
    • 交互式输入密码登陆
      • 目前只支持 ~/.ssh/config
  • 注意
    • 不兼容 scp 的参数, 比如不接受 -r 参数
    • 不要直接替代 scp
  • Q&A
    • 为什么不用 rsync --exclude=
      • 我并不觉得方便
      • 不够自动化
      • 要支持复杂的 gitignore
    • 为什么用rust写
      • 本身用其他语言写没有什么区别
      • 我只会写rust
    • 为什么不从头用rust写一遍 scp, 而不是调用scp
      • 需要不少工作量
    • 为什么不用 c 直接改 scp
      • c 中不太方便导库

Ext Link: https://github.com/lengyijun/smartscp

评论区

写评论

还没有评论

1 共 0 条评论, 1 页