Je suis sur la machine A et je veux extraire un fichier de la machine B.
A$ scp <myuserid>@hostB:<path of file in B> .
il dit que:
scp: <path of file in B>: No such file or directory
Mais sur la machine B, ce fichier existe dans ce chemin.
Qu'est-ce qui ne va pas?
Réponses:
Vous n'avez spécifié aucun fichier: vous devez ajouter le fichier (avec chemin) après les deux points:
ou
pour un chemin relatif à votre répertoire personnel.
Si vous ne spécifiez pas un utilisateur différent (c.-à-d., L'utilisateur sur A et B sont les mêmes), vous n'avez pas besoin du
@
la source
Cela ne fonctionne que lorsque vous copiez un fichier. si vous voulez copier un répertoire utilisez
Option que vous pouvez utiliser à votre demande
-P port
Spécifie le port auquel se connecter sur l'hôte distant. Notez que cette option est écrite avec un "P" majuscule, car -p est déjà réservé pour conserver les heures et les modes du fichier dans rcp.
-p
Préserve les temps de modification, les temps d'accès et les modes du fichier d'origine.
-r
Copie récursivement des répertoires entiers.
-v
Mode verbeux. Demande à scp et ssh d'imprimer des messages de débogage sur leur progression. Cela est utile pour déboguer les problèmes de connexion, d'authentification et de configuration.
la source
utiliser le chemin scp approprié
la source
Vous pouvez spécifier soit un chemin de fichier relatif à votre répertoire personnel, soit un chemin de fichier absolu. Par exemple, si se
foo.txt
trouve dans un répertoire appelédocs
sous votre répertoire personnel et sebar.txt
trouve dans/var/tmp
, vous pouvez faireNotez que si le nom de fichier contient des caractères spéciaux pour le shell distant (généralement des espaces ou
!"#$&'*;<>?[\]^`{|}~
), vous devez les échapper pour le shell distant en plus de les échapper pour le shell local. Par exemple, si le fichier est appeléfoo bar.txt
et se trouve dans votre répertoire personnel:Si vous rencontrez des difficultés avec les fichiers contenant des signes de ponctuation, essayez d'utiliser
sftp
plutôt que descp
les transférer. Ou utilisez une méthode encore plus pratique, si vous pouvez utiliser FUSE : montez le système de fichiers de la machine distante à l'aide de sshfs , puis utilisez des commandes de manipulation de fichiers ordinaires.la source
On peut SCP dans les deux sens facilement si l'on a l'utilisateur DMZ et le mot de passe. Vous êtes sur votre machine locale: de DMZ à votre machine Linux locale (pull). Signifie copier abc.text dans le dossier2 vers votre PWD actuellement connecté.
Il vous demandera un mot de passe
c'est tout
Maintenant, vous voulez envoyer un dossier avec des sous-dossiers et des fichiers de votre machine locale à DMZ:
usr @ localmachine: ~ / abc / defs> dossier scp -r / usr @ 111111: vkrishna / docker /
nouveau mot de passe sera demandé
: est le dossier racine de la machine distante et vkrishna est un dossier là-bas & sous-dossier docker. Le dossier defs localement a un dossier appelé "dossier" que nous voulons transférer complètement.
Comme / abc / defs / dossier
la source