Réponses:
Un fichier normal est un fichier qui n'est pas un répertoire ou des types plus exotiques de fichiers «spéciaux» tels que des canaux nommés, des périphériques, des sockets, des portes, etc. Les liens symboliques ne sont pas non plus des fichiers normaux, mais ils se comportent comme leur cible une application accède au contenu du fichier.
Vous avez transmis en root@IP:
tant que source de la copie et en /path/to/picture.jpg
tant que destination. La source est le répertoire de base de l'utilisateur root
sur la machine IP
. Ceci est utile en tant que destination, mais pas en tant que source. Ce que vous avez tapé requis pour copier un répertoire sur un fichier; scp
ne peut pas copier un répertoire sauf si vous demandez une copie récursive avec l' -r
option (et il refuserait d'écraser un fichier existant avec un répertoire même avec -r
, mais il écraserait discrètement un fichier normal si la source était un fichier normal).
Si /path/to/picture.jpg
le chemin sur la machine distante du fichier que vous souhaitez copier est correct, vous devez coller le nom du fichier sur la spécification de l'hôte. C'est le colon :
qui sépare le nom d'hôte du chemin distant. Vous devrez également spécifier une destination.
scp root@IP:/path/to/picture.jpg /some/destination
Si vous souhaitez copier le fichier local /path/to/picture.jpg
sur l'hôte distant, vous devez échanger les arguments. Les commandes de copie Unix placent la ou les sources en premier et la destination en dernier.
scp /path/to/picture.jpg root@IP:
Si vous souhaitez copier le fichier distant /path/to/picture.jpg
au même emplacement localement, vous devez répéter le chemin. Vous pouvez faire en sorte que votre shell répète pour vous (moins de frappe, moins de lisibilité).
scp root@IP:/path/to/picture.jpg /path/to/picture.jpg
scp {root@IP:,}/path/to/picture.jpg
Lors de la copie d'un répertoire, vous devez utiliser l' -r
option suivante:
scp -r root@IP:/path/to/file /path/to/filedestination
problème de syntaxe - supprime l'espace blanc entre
root @ IP:
et
/chemin
scp
.
not a regular file
-r
comme argument scp.
scp root@IP:/path/to/file /path/to/filedestination
La commande ci-dessus copie un fichier du serveur distant sur votre ordinateur. Si vous tapez uniquement, scp root@IP:
il essaiera de copier le répertoire de base de root (scp users home .
).
Donc, vous devez fournir le chemin exact du fichier
Vous obtenez cette erreur parce que vous essayez de copier un dossier et non un fichier. Vous devez donc copier vos fichiers de manière récursive à l'aide de l' -r
option
Utilisez la commande ci-dessous lors de la copie de fichiers d'une machine distante vers une machine locale
scp -r root@RemoteIP:/path/to/file /path/to/filedestination
OU
Lors de la copie de fichiers d'une machine locale vers une machine distante
scp -r /path/to/file root@RemoteIP:/path/to/filedestination
scp root@IP:/path/to/*.jpg /path/to/filedestination/
Cela fonctionnera (au moins sur mon Mac)