scp给出“不是常规文件”

问题描述 投票:27回答:5

我在Linux上使用scp时遇到问题,它说“不是常规文件”。我看了其他问题/答案,但我找不到有什么问题......我写道:

scp aa@aa:/home/pictures/file.fits .

file.fitsaa@aa/home/pictures复制到当前目录。我也试过没有使用/home/,但它既不起作用......

你明白什么是错的吗?

linux scp
5个回答
60
投票

我刚测试了这个,发现至少有3种情况,其中scp将返回not a regular file

  1. 文件实际上是一个目录
  2. 文件是命名管道(a.k.a.FIFO)
  3. 文件是设备文件

案例#1似乎最有可能。如果您打算使用scp传输整个目录结构,请使用-r选项指示递归副本。


18
投票

“/home/pictures/file.fits”必须在远程服务器上命名一个实际的文件系统对象。如果没有,scp会给出不同的错误信息。

我看到FITS是an image format。我想“/home/pictures/file.fits”是远程服务器上的目录名,包含FITS文件或类似的东西。

要使用scp复制目录,您必须提供“-r”标志:

scp -r aa@aa:/home/pictures/file.fits .

9
投票

发生此错误的一种方法是,如果您在第一条路径之前有一个空格,如下所示:

scp myUserName@HostName: /path/to/file  /path/to/new/file                            ^

要修复,只需占用空间:

scp myUserName@HostName:/path/to/file  /path/to/new/file

3
投票

您需要遵循的简单步骤

1)scp -r user @ host:/ var / www / html / projectFolder / var / www / html / localsystem-project-folder

2)scp -r user @ host:/var/www/html/projectFolder/filename.php / var / www / html / localsystem-project-folder /

这里-r是递归遍历导演将帮助你没有任何错误。


0
投票

它不起作用,因为您需要精确复制文件的名称;所以像这样使用这个命令:

scp aa@aa:/home/pictures/file.fits ./file.fits

您可以像这样重命名文件:

scp aa@aa:/home/pictures/file.fits ./newNameFile.fits
© www.soinside.com 2019 - 2024. All rights reserved.