如何使用SSH和MAC OS X终端在计算机之间复制文件

219

我正在尝试将我的 .profile、.rvm 和 .ssh 文件夹/文件复制到新电脑,但一直收到“不是常规文件”(not a regular file)的响应。我知道如何使用 cpssh 命令,但不确定如何用它们来在两台电脑之间传输文件。

如果能提供任何帮助,将不胜感激!谢谢!


8
虽然你已经收到了答案,但我仍然建议访问superuser.com。 - KevinDTimm
3个回答

479

你可以使用scp命令来完成这个操作,它使用ssh协议在不同的机器之间复制文件。它扩展了cp的语法以允许引用其他系统:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file

从这台机器复制一些东西到另一台机器:

scp /path/to/local/file username@hostname:/path/to/remote/file

将另一台机器上的内容复制到此机器:

scp username@hostname:/path/to/remote/file /path/to/local/file

指定端口号进行复制:

scp -P 1234 username@hostname:/path/to/remote/file /path/to/local/file

1
我认为OP使用“how to use them in order to transfer”这个短语的方式可以改写为“how to use them to transfer”。可能有点啰嗦,但并不是非常错误。 - High Performance Mark
2
@High:啊,确实。:) 再来杯咖啡 - Ether
2
谢谢@Ether,但不幸的是,我对以'.'开头的目录(如我正在尝试传输的.rvm文件夹)始终收到“不是常规文件”的响应,有什么建议吗? - alvincrespo
1
不用担心,我搞定了!我需要使用-r(递归)来导入整个目录结构。非常感谢! - alvincrespo
2
是的,您可以使用“-r”进行递归操作,或者只需将文件压缩成zip格式并以该格式为目标。 - Eric Holmes
最后一个带有端口的命令必须是:scp -P 1234 /path/to/local/file username@hostname:/path/to/remote/file - Tropin Alexey

15

首先对文件夹进行压缩:

使用以下命令: zip -r 压缩包名称.zip 需要压缩的文件夹名/

或者

tar -pvczf 备份目录.tar.gz /需要备份的目录路径

若使用gzip压缩,可使用SCP传输:

scp 用户名@你的服务器地址:~/服务器路径/公共_html ~/桌面


1

1
谢谢@Andy,我们在工作中使用SVN,但我刚拿到了一台新电脑,想学习如何通过命令行完成所有操作,因为这里的人更喜欢使用它。我也开始喜欢上它了 :) - alvincrespo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接