Loading

原生scp -r排除指定文件方法

需求

从开发板拷贝bag回来太大了,希望可以调用scp -r的同时排除掉指定文件提高速度。

探索

文献基本都推荐rsync -a --exclude或者rsync -av -e ssh --exclude
考虑到嵌入式系统多采用busybox并不支持rsync希望有一种原生支持的命令进行替代

解决

受到ssh与tar的奇妙组合 - azureology - 博客园启发
可以让tar完成文件排除,通过管道还原文件内容

# 从PC端发起
ssh guest@<guest_ip> "cd /home/guest;tar cvf - ./bag --exclude='1.bag'"|tar xf -
# 从开发板端发起
tar cf - ./bag/ --exclude='1.bag'|ssh host@<host_ip> tar xf - -C /home/host

参考

GNU tar 1.34: 6.4 Excluding Some Files

posted @ 2023-07-10 17:58  azureology  阅读(599)  评论(0编辑  收藏  举报