sftp
command ist tatsächlich um Befehle herum aufgebaut (wie ftp
). Daher kann es nicht als direkter Ersatz für scp
dienen .
Sie können jedoch Einzeiler verwenden wie:
echo get /remote/path/file.txt /local/path.txt | sftp [email protected]
oder
echo put /local/path.txt /remote/path/file.txt | sftp [email protected]
Vielleicht möchten Sie -b -
hinzufügen um einen nicht-interaktiven Modus zu erzwingen.
Interessanterweise (wie @Kamil erwähnte) können Sie für Downloads auch diesen scp
verwenden -ähnliche Syntax:
sftp [email protected]:/remote/path/file.txt /local/path.txt
(Die Verwendung des zweiten Arguments ist nicht dokumentiert).
Verwendung von sftp://
Präfix ist auch seit OpenSSH 7.7 möglich, das die Syntax etwas modifiziert (erlaubt URL-Kodierung des Benutzernamens und des Pfads).
Es gibt auch kostenlos/Open-Source pscp
Befehlszeilenclient, der im PuTTY-Paket enthalten ist, das für Linux verfügbar ist (obwohl es häufiger unter Windows verwendet wird). Es hat ein identisches Befehlszeilenschnittstelle zu OpenSSH scp
. Aber im Gegensatz zu seinem Namen und scp
, es ist hauptsächlich SFTP Client (obwohl er auf SCP zurückgreifen kann, wenn der Server SFTP nicht unterstützt).
Trotz seines Namens kann PSCP (wie viele andere vorgebliche scp-Clients) jedes dieser Protokolle verwenden.
...
Normalerweise versucht PSCP, das SFTP-Protokoll zu verwenden, und greift nur dann auf das SCP-Protokoll zurück, wenn SFTP auf dem Server nicht verfügbar ist.
Sie können PuTTY/pscp mit apt-get
installieren wie:
sudo apt-get install -y putty
Es gibt eine ähnliche Frage zu Stack Overflow:Single line sftp from terminal