本篇文章由 VeriMake 旧版论坛中备份出的原帖的 Markdown 源码生成
原帖标题为:如何将树莓派的文件通过终端传到同一无线局域网的另一台设备
原帖网址为:https://verimake.com/topics/111 (旧版论坛网址,已失效)
原帖作者为:Maggie(旧版论坛 id = 35,注册于 2020-04-26 09:34:15)
原帖由作者初次发表于 2020-06-17 20:18:03,最后编辑于 2020-06-17 20:18:03(编辑时间可能不准确)
截至 2021-12-18 14:27:30 备份数据库时,原帖已获得 1205 次浏览、0 个点赞、0 条回复
因为我没有给树莓派外接显示屏,所以我一直都在Macbook Pro上使用SSH命令远程控制树莓派。今天我突然想把树莓派上的代码搞出来,更新到我的GitHub主页上,所以就在网上搜索了相关的教程,希望可以把树莓派上的文件远程发送到我的笔记本上。(以下内容仅限处于同一局域网的设备间使用哦~)
远程进入树莓派 Terminal
首先我在笔记本上使用了以下命令行
ssh pi@192.168.31.62 # '@'后面的内容是树莓派的IP地址
输入该命令行后,系统会提示你输入密码。等你的prompt显示为pi@raspberrypi就说明你成功进入树莓派终端了。

在树莓派上整理打包好所有要发送的文件
因为我的文件散落在树莓派 ~ 这个path下,所以我需要先创个文件夹,把所有文件打包进文件夹再发送给我的笔记本。
创建文件夹的命令是
mkdir + readable # 加号后应加上你想创建的文件夹名
ls查看后发现该文件夹已创建成功了 (第二行的倒数第二个)

首先要cd进你想移动的文件的目录,然后就可以把乱七八糟我需要的文件都移动到需要的路径下了
mv 文件名1 文件名2 文件名3 目标路径名 #移动文件的命令 原目录下将不会再有这些文件
如果你想把文件拷贝到目标路径,可以使用这个代码
cp 文件名1 文件名2 文件名3 目标路径名 #拷贝文件的命令 原目录下仍会有这些文件
操作完后再ls一下,就会发现 PERSONNAME.py 等文件已经成功被我移动到readable这个文件夹里了

将树莓派文件传到其他设备
用以下代码便可以在树莓派上远程再访问回你的电脑。
# 将单个文件远程发送到其他设备上 (第一条指定了文件名,第二条指定了文件目录)
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_username@remote_ip:remote_folder
# 在 local_file 的位置输入你想传的文件夹名
# 在 remote_username@remote_ip 的位置输入你笔记本的用户名@ip地址
# 在 remote_file 的位置输入你想给传输文件的新命名
# 在 remote_folder 的位置输入你想把文件传到的路径
——————————————————————————————————————————————————————————————————————
#将文件夹递归复制到其他设备上
scp -r local_folder remote_username@remote_ip:remote_folder
# -r 的意思是递归复制整个目录
# 在 local_folder 的位置输入你想传的文件夹名
# 在 remote_username@remote_ip 的位置输入你笔记本的用户名@ip地址
# 在 remote_folder 的位置输入你想把文件传到的目录
如要查看 IP 地址,可参考以下方式:
Windows 系统:在终端输入 ipconfig
macOS 系统:在 网络偏好设置 > 状态

但我在电脑上输入后 “scp -r ~/readable verimaggieee@192.168.31.222:~/Desktop” 的代码后,出现了 Connection refused 的提醒。
经过搜索才发现原来是我没有在系统偏好设置里开远程登录的权限。如果你也用mac的话,要先打开系统偏好设置,输入远程登录 / remote login,再勾选远程登录这一栏。勾选完成后,系统甚至会贴心地帮你附上登录的指令。

开完权限后运行代码,并输入用户密码后,文件传输就可以顺利进行啦~ 这可比用邮箱传文件看上去高级多了(杠掉)方便多了
