Ich stelle eine SSH-Verbindung zu einem Remoteserver in der Befehlszeile her und versuche, mit dem Befehl scp
ein Verzeichnis auf meinen lokalen Computer zu kopieren. Der Remote-Server gibt jedoch die folgende Nachricht "usage" zurück:
[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[[email protected]]Host1:]file1 [...] [[[email protected]]Host2:]file2
[Stewart:console/ebooks/discostat] jmm%
Ich möchte Dateien in beide Richtungen übertragen können. Nach allem, was ich gelesen habe, dachte ich, dass der obige Befehl zum Herunterladen und scp -p [localpath] [remotepath]
zum Hochladen funktionieren würde?
Sie müssen irgendwo etwas scp
. Sie haben scp ./styles/
, sagen also, dass Sie eine sichere Kopie ./styles/
haben, aber nicht, wohin Sie sie kopieren sollen.
Im Allgemeinen, wenn Sie herunterladen möchten, wird es gehen:
# download: remote -> local
scp [email protected]_Host:remote_file local_file
wobei local_file
tatsächlich ein Verzeichnis sein könnte, in das die Datei kopiert werden soll. Zum Hochladen ist es umgekehrt:
# upload: local -> remote
scp local_file [email protected]_Host:remote_file
Wenn Sie ein gesamtes Verzeichnis kopieren möchten, benötigen Sie -r
. Stellen Sie sich scp
wie cp
vor, außer dass Sie eine Datei mit [email protected]_Host:file
sowie nur lokale Dateien angeben können.
Bearbeiten: Wie in einem Kommentar erwähnt, kann der Benutzer bei der Angabe einer entfernten Datei weggelassen werden, wenn die Benutzernamen auf dem lokalen und dem entfernten Host identisch sind.
Verwenden Sie beim Kopieren auf/von Ihrem Desktop-Computer WinSCP oder unter Linux Nautilus SCP über die Option Connect To Server.
scp kann nur Dateien auf einen Computer kopieren, auf dem sshd ausgeführt wird. Daher müssen Sie die Client-Software auf dem Remotecomputer von dem Computer ausführen, auf dem scp ausgeführt wird.
Wenn Sie über die Befehlszeile kopieren, verwenden Sie:
# copy from local machine to remote machine
scp localfile [email protected]:/path/to/whereyouwant/thefile
oder
# copy from remote machine to local machine
scp [email protected]:/path/to/remotefile localfile
Sie müssen sowohl Quelle als auch Ziel angeben. Wenn Sie Verzeichnisse kopieren möchten, sollten Sie die Option -r auswählen.
So kopieren Sie/home/user/whatever rekursiv vom Remote-Server in Ihr aktuelles Verzeichnis:
scp -pr [email protected]:whatever .
Nein, Sie müssen noch scp [from] [to]
auf jede Art und Weise kopieren
Der Unterschied ist, Sie müssen scp -p server:serverpath localpath