![使用 SCP 时出错:“不是常规文件”](https://linux22.com/image/26696/%E4%BD%BF%E7%94%A8%20SCP%20%E6%97%B6%E5%87%BA%E9%94%99%EF%BC%9A%E2%80%9C%E4%B8%8D%E6%98%AF%E5%B8%B8%E8%A7%84%E6%96%87%E4%BB%B6%E2%80%9D.png)
我找了好久没找到常规文件的定义。我的路径是永久的(我从 开始/
)并且我正在连接到
scp root@IP: /path/to/picture.jpg
结果询问密码,然后...
scp: .: not a regular file
答案1
复制目录时,您应该使用以下-r
选项:
scp -r root@IP:/path/to/file /path/to/filedestination
答案2
常规文件不是目录或更奇特的文件“特殊”文件例如命名管道、设备、套接字、门等。符号链接也不是常规文件,但当应用程序访问文件内容时,它们的行为就像目标文件一样。
您root@IP:
作为副本的源和/path/to/picture.jpg
目的地传递。源是root
计算机上用户的主目录IP
。这作为目的地很有用,但作为来源则不那么有用。将目录复制到文件所需的输入内容;scp
无法复制目录,除非您使用该-r
选项请求递归复制(并且即使使用 ,它也会拒绝用目录覆盖现有文件-r
,但如果源是常规文件,它会悄悄地覆盖常规文件)。
如果/path/to/picture.jpg
是要复制的文件在远程计算机上的路径,则需要将文件名粘贴到主机规范中。冒号将:
主机名与远程路径分隔开。您还需要指定目的地。
scp root@IP:/path/to/picture.jpg /some/destination
如果要将本地文件复制/path/to/picture.jpg
到远程主机,则需要交换参数。 Unix 复制命令将源放在前面,将目标放在最后。
scp /path/to/picture.jpg root@IP:
如果要将远程文件复制/path/to/picture.jpg
到本地同一位置,则需要重复该路径。您可以让您的 shell 为您完成重复的工作(更少的打字,更少的可读性)。
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
答案3
您收到该错误是因为您尝试复制文件夹而不是文件,因此您应该使用-r
选项递归复制文件
将文件从远程计算机复制到本地计算机时使用以下命令
scp -r root@RemoteIP:/path/to/file /path/to/filedestination
或者
将文件从本地计算机复制到远程计算机时
scp -r /path/to/file root@RemoteIP:/path/to/filedestination
答案4
scp root@IP:/path/to/file /path/to/filedestination
上面的命令将文件从远程服务器复制到您的计算机。如果您仅键入,scp root@IP:
它将尝试复制 root 的主目录( scp users home .
)。
所以你需要提供文件的确切路径