sftp
command est en effet construit autour de commandes (comme ftp
). Il ne peut donc pas fonctionner comme un remplacement sur place pour scp
.
Bien que vous puissiez utiliser des lignes simples telles que :
echo get /remote/path/file.txt /local/path.txt | sftp [email protected]
ou
echo put /local/path.txt /remote/path/file.txt | sftp [email protected]
Vous pouvez ajouter -b -
pour forcer un mode non interactif.
Fait intéressant (comme @Kamil l'a mentionné), pour les téléchargements, vous pouvez également utiliser ce scp
-syntaxe semblable :
sftp [email protected]:/remote/path/file.txt /local/path.txt
(l'utilisation du deuxième argument n'est pas documentée).
Utilisation de sftp://
le préfixe est également possible depuis OpenSSH 7.7, ce qui modifie quelque peu la syntaxe (permet l'encodage URL du nom d'utilisateur et du chemin).
Il y a aussi le pscp
gratuit/open-source client de ligne de commande fourni dans le package PuTTY, qui est disponible pour Linux (bien qu'il soit plus couramment utilisé sous Windows). Il a un identique interface de ligne de commande pour OpenSSH scp
. Mais contrairement à son nom et scp
, il s'agit principalement de SFTP client (alors qu'il peut se replier sur SCP, si le serveur ne prend pas en charge SFTP).
Malgré son nom, PSCP (comme de nombreux autres clients scp apparents) peut utiliser l'un ou l'autre de ces protocoles.
...
Normalement, PSCP tentera d'utiliser le protocole SFTP et ne reviendra au protocole SCP que si SFTP n'est pas disponible sur le serveur.
Vous pouvez installer PuTTY/pscp avec apt-get
comme :
sudo apt-get install -y putty
Il y a une question similaire sur Stack Overflow :Single line sftp from terminal