Respostas:
Um arquivo regular é um arquivo que não é um diretório ou tipos mais exóticos de arquivos "especiais" , como pipes nomeados, dispositivos, soquetes, portas, etc. Links simbólicos também não são arquivos regulares, mas se comportam como seu destino quando um aplicativo está acessando o conteúdo do arquivo.
Você passou root@IP:
como a origem da cópia e /path/to/picture.jpg
como o destino. A fonte é o diretório inicial do usuário root
na máquina IP
. Isso é útil como destino, mas não como fonte. O que você digitou necessário para copiar um diretório em um arquivo; scp
não é possível copiar um diretório, a menos que você solicite uma cópia recursiva com a -r
opção (e ele se recusaria a sobrescrever um arquivo existente por um diretório, mesmo -r
que fosse, mas sobrescreveria silenciosamente um arquivo regular se a origem fosse um arquivo regular).
Se /path/to/picture.jpg
for o caminho na máquina remota do arquivo que você deseja copiar, cole o nome do arquivo na especificação do host. É o dois pontos :
que separa o nome do host do caminho remoto. Você precisará especificar um destino também.
scp root@IP:/path/to/picture.jpg /some/destination
Se você deseja copiar o arquivo local /path/to/picture.jpg
para o host remoto, é necessário trocar os argumentos. Os comandos de cópia do Unix colocam a (s) fonte (s) em primeiro lugar e o destino em último.
scp /path/to/picture.jpg root@IP:
Se você deseja copiar o arquivo remoto /path/to/picture.jpg
para o mesmo local localmente, é necessário repetir o caminho. Você pode fazer com que seu shell repita por você (menos digitação, menos legibilidade).
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
Ao copiar um diretório, você deve usar a -r
opção:
scp -r root@IP:/path/to/file /path/to/filedestination
problema de sintaxe - remova o espaço em branco entre
root @ IP:
e
/caminho
scp
.
not a regular file
-r
como argumento scp.
scp root@IP:/path/to/file /path/to/filedestination
O comando acima copia um arquivo do servidor remoto para o seu computador. Se você digitar apenas, scp root@IP:
ele tentará copiar o diretório inicial do root (home dos usuários do scp .
).
Então, você precisa fornecer o caminho exato para o arquivo
Você está recebendo esse erro porque está tentando copiar uma pasta e não um arquivo e, portanto, deve copiar seus arquivos recursivamente usando a -r
opção
Use o comando abaixo ao copiar arquivos da máquina remota para a máquina local
scp -r root@RemoteIP:/path/to/file /path/to/filedestination
OU
Ao copiar arquivos da máquina local para a máquina remota
scp -r /path/to/file root@RemoteIP:/path/to/filedestination
scp root@IP:/path/to/*.jpg /path/to/filedestination/
Isso funcionará (pelo menos no meu Mac)