从OSX向Pi复制文件


13

我有一个Pi在OSX上使用ssh和Screen Sharing无头运行,而在raspbian上使用ightentvncserver。

我可以使用ssh或屏幕共享(即VNC)将文件从Mac复制到Pi或从Pi复制出来,还是需要使用Samba或类似文件?


4
参见scp和/或sftp。如果您的ssh已经有效,则它们应该可用。还有一个sshfs,允许挂载共享NFS。
goldilocks

1
在SSH上的SCP对我来说很好。我自己使用Cyber​​duck进行文件传输,因为我可以像在finder中一样拖放。
Gerben 2013年

1
我使用sftp(使用FileZilla)将文件保存到那里,因此现在关闭查询。(我会标明这是公认的。)
Milliways

请注意,在Pi上,ssh加密速度可能较慢。几年前,我发现河豚成为CPU的明智之选。
托尔比约恩Ravn的安徒生

NFS是另一种选择,它在Unix世界中像本机一样最有意义。
喷射

Answers:


18

自从我发布此答案以来的6年中,许多事情发生了变化。
macOS Samba支持得到了改进,Apple现在将Samba用作默认的文件共享(并且afp不适用于更新的Apple文件系统)
Debian Buster现在使用netatalk 3-它具有重大变化,并且需要更多配置才能做任何有用的事情。
在最近的Raspbian中,nfs的支持要好得多,但是仍然存在来自macOS的写入权限的问题。

我使用了所有的ftp,Samba,afp和nfs。
主要是ftp(Filezilla)用于与Pi之间的常规文件传输
以及Samba浏览Pi Home和共享文件系统,以及循环挂载我的备份映像以进行备份/还原。

我使用ftp解决了我的问题(如上所述),但是最近发现了另一种方法,其他Mac用户可能会觉得有用。

sudo apt-get install netatalk

在Pi上安装appletalk协议。这使您可以使用以下内容(在Mac上的终端提示符下)连接到Pi

open afp://10.1.1.10  (replace this with your Raspberry Pi IP address)

然后,您可以使用Finder(或任何其他FileManager,例如QuollEyeTree)来传输文件到Pi或从文件传输文件,方法与在Mac上相同

注意:此编辑是由另一个用户执行的,并且不需要AFAIK如果您收到错误消息,则无法使用open afp命令引用控制台引用文件描述符,请再次尝试sudo,此外,请确保在Mac上配置了远程登录。


@Paul Fort:当您最初添加它时,“ open afp command”是什么?“ afp”应该是“ ftp”吗?
彼得·莫滕森

@PeterMortensen您是否尝试过(或检查了Mac帮助)?
Milliways 2014年

1
这太棒了。爱它!感谢您的提示,不知道这样做的能力。
gdgr 2015年

7

如果可以使用ssh,则很可能scp(SSH副本)也可以正常使用。

无论如何,我都会安装samba,因为到处都有太多的winboxen,接下来您可能需要从Windows进行访问。


我在Mac上尝试了scp,但尽管这样似乎没问题,但没有文件出现(我使用了“ sudo scp -v world2 //pi@10.1.1.10:”和其他变体)。我已经使用scp(在Pi上)来传输rsa密钥。sftp似乎是最简单的选择。
Milliways

scp通常不需要sudo,没有它就可以正常工作。
lenik

scp从Mac到RPi均可按预期工作,并且在RPi上不需要任何其他软件。netatalk也可以很好地工作,但是当然会增加可能仅偶尔使用的软件和开销。
bobstro

3

您尝试scp-r国旗吗?因为没有它,它将不会执行递归复制。

如果您要复制文件或文件夹world2,这就是我的做法:

$ scp -rv world2 pi@10.1.1.10:/path/to/copy/of/world2/

优秀的指挥。快捷方便。非常感谢你。
GutierrezDev

您可以scp更容易,如果你在定义你的主机使用~/.ssh/config(见nerderati.com/2011/03/17/...) -如果您配置主机rpi,那么你可以使用类似scp -r world2 rpi:/path/to/copy/of/world2/。以防万一它不明显,它也可以以其他方式工作,例如:scp rpi:.bashrc somedir。如果路径不是绝对路径,则它将相对于$HOME
ccpizza

3

如果您有很多文件,则还可以考虑使用rsync。您可以使用-P标志(for --partial --progress),该标志在您预期可能会有长时中断的长时间传输时非常方便-这样,将保留部分传输的文件(在正常情况下,它们将被删除),以便当您恢复传输时,将不需要很长时间即可完成传输。

因此,您可以这样做:

rsync -avP world2/ pi@10.1.1.10:world2

(假设world2是一个目录,该命令将在复制内容world2/world2目录中的远程计算机上)


1

如果是较长期的解决方案,另一个选择是在两台计算机上安装Syncthing或Bittorrent Sync。它使多台计算机上的目录保持同步,并且可以处理大文件和目录。作为文件服务器,备份和传输文件,它非常方便。

我刚刚从btsync切换到Syncthing。Syncthing提供了更多选项和控制权(而btsync具有专有代码)。

他们在apt.syncthing.net上的Debian / Ubuntu软件包对我来说很好用,我以此教程为指导


1

在您的Pi上设置SMB共享, http://raspberrywebserver.com/serveradmin/share-your-raspberry-pis-files-and-folders-across-a-network.html

然后,在Mac上,转到finder>转到>连接到服务器(cmd + k)>并输入pi的地址,smb://192.Ras.Pi然后可以导航文件夹结构,复制/粘贴文件等。


为什么要花2年前的问题回答答案并接受答案呢?这甚至不是一个很好的答案,因为SMB是b。协议。如果您有Mac,请尝试答案。
Milliways

为什么要烦恼地发布一个无用的评论,以获得一个完美的答案,这与提供的其他所有解决方案都不一样?有多种方法可以将文件从一个位置移动到另一个位置,这种方法不需要在Mac上安装任何其他软件,也不需要大量使用终端。为什么将其发布在N岁的线程上?A)解决方案仍然不错,B)问题仍然相关-我今天早上在Google上进行了搜索,这是第一个结果C)此解决方案与提供的其他解决方案不同。
jrubins

我曾在原始问题中提到过这一点,“或者我是否需要使用Samba或类似的东西”,并且(隐含)将其排除在外。
Milliways 2015年

“或者我需要使用Samba或类似语言”不是排他性语言。因此,对于给您一个很好的答案(在大多数情况下,因为Samba已安装在许多RPi发行版上),我感到很抱歉,它比提供的任何其他答案都容易得多。我真的不明白为什么您会觉得需要对我的答案进行辩论并否决它。仅仅因为您在Stack Exchange上享有5000声誉,并不意味着您就不是一个傻瓜。
jrubins


0

我发现最简单的方法是使用Cyber​​duck。

  1. 打开新连接
  2. 从下拉菜单中选择SFTP
  3. 服务器:放置Pi的IP地址
  4. 用户名:应为“ pi”
  5. 密码:默认情况下应为“ raspberry”,除非您更改了密码

取消选择匿名登录,然后连接。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.