Je recherche depuis un moment et je ne trouve pas la définition d'un fichier normal. Mon chemin est permanent (je commence à /
) et je me connecte à
scp root@IP: /path/to/picture.jpg
Se traduit par une demande de mot de passe, puis ...
scp: .: not a regular file
Un fichier normal est un fichier qui n'est pas un répertoire ou des types plus exotiques de fichiers "spéciaux" tels que les canaux nommés, les périphériques, les sockets, les portes, etc. Liens symboliques ne sont pas non plus des fichiers normaux, mais ils se comportent comme leur cible lorsqu'une application accède au contenu du fichier.
Tu es passé root@IP:
comme source de la copie et /path/to/picture.jpg
comme destination. La source est le répertoire personnel de l'utilisateur root
sur la machine IP
. Ceci est utile comme destination, mais pas comme 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 le -r
option (et il refuserait d'écraser un fichier existant avec un répertoire même avec -r
, mais il écraserait tranquillement un fichier normal si la source était un fichier normal).
Si /path/to/picture.jpg
est le chemin sur la machine distante du fichier que vous souhaitez copier, vous devez coller le nom du fichier à 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
à 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 demander à votre Shell de répéter 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 le -r
option:
scp -r root@IP:/path/to/file /path/to/filedestination
Vous obtenez cette erreur parce que vous essayez de copier un dossier et non un fichier et que vous devez donc copier vos fichiers récursivement en utilisant -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
OR
Lors de la copie de fichiers d'une machine locale vers une machine distante
scp -r /path/to/file root@RemoteIP:/path/to/filedestination
problème de syntaxe - supprimer l'espace blanc entre
root @ IP:
et
/chemin
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 personnel de root (utilisateurs scp home .
).
Vous devez donc fournir le chemin exact du fichier
scp root@IP:/path/to/*.jpg /path/to/filedestination/
Cela fonctionnera (au moins sur mon Mac)