2009-09-12 21:39:59 +0000 2009-09-12 21:39:59 +0000
201
201

Wie bekomme ich ein ganzes Verzeichnis in sftp?

Ich lerne gerade, sftp zu benutzen, und ich möchte ein Verzeichnis vom Remote-Computer auf meinen lokalen Computer kopieren. Wenn ich

get [directory]

versuche, erhalte ich folgende Fehlermeldung:

Cannot download non-regular file: /home/mpirocch/Documents

get -R funktioniert auch nicht.

Antworten (9)

282
282
282
2010-11-29 21:38:08 +0000

Verwenden Sie das Kennzeichen -r (rekursiv):

get -r *
52
52
52
2009-09-12 21:51:06 +0000

Verwendung:

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents
42
42
42
2010-04-08 13:54:47 +0000

Verwenden Sie lftp :

lftp sftp://user@host

Dann, innerhalb von lftp, cd in das Verzeichnis, das Sie kopieren möchten, und verwenden Sie den Befehl mirror, um das ausgewählte Verzeichnis rekursiv herunterzuladen, etwa so:

mirror

Dieser Befehl akzeptiert Optionen und Argumente:

mirror [_OPTIONS_] [_source_ [_target_]]

Zum Beispiel bewirkt die Option -R (oder --reverse), dass der lokale Verzeichnisbaum in das entfernte Verzeichnis hochgeladen wird:

mirror -R

Siehe die Manpage lftp(1) auf der Projektseite oder bei Debian. org für weitere Befehle und Optionen.

17
17
17
2014-03-10 01:18:10 +0000

nun, dieser kleine Leitfaden sollte helfen, einen entfernten Server auf einen lokalen Ordner zu spiegeln mit lftp

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = benutzt das SFTP-Protokoll
  • mirror = Spiegelmodus
  • verbose = zeigt die Dateien, die heruntergeladen werden
  • use-pget-n = Anzahl der Segmente, wirklich nützlich, um große Dateien zu beschleunigen
  • parallel = lädt Multiplikatordateien gleichzeitig herunter

wenn Sie Dateien parallel herunterladen wollen, schalten Sie use-pget-n=8 mit --parallel=8 aus

hoffen, dass dies jedem hilft, der einen entfernten Ordner auf einen lokalen Ordner spiegeln muss

15
15
15
2009-09-13 03:11:22 +0000

Verwenden Sie das Programm sftp nicht direkt, wenn Sie etwas Besseres finden können. Für Linux unterstützen viele Dateimanager (zumindest Nautilus und Dolphin, die von GNOME und KDE) sftp nativ, und es gibt immer sshfs. Für Windows gibt es WinSCP, und wahrscheinlich andere . Der Sinn all dieser Programme ist es, Ihnen den Zugriff auf Dateien über sftp zu ermöglichen, als ob sie sich auf einem normalen Dateisystem befänden, so dass Sie sich nicht darum kümmern müssen, dass Sie über sftp darauf zugreifen.

14
14
14
2009-09-12 22:34:42 +0000

Versuchen Sie mget statt get.

Klarstellung: mget wird funktionieren, wenn Sie sich innerhalb des Verzeichnisses befinden, das Sie kopieren wollen; wenn Sie etwas wie dies tun:

sftp> cd dir_to_get
sftp> mget *

werden alle Dateien in diesem Verzeichnis erhalten. Es wird jedoch nicht rekursiv den Inhalt von Unterverzeichnissen holen.

10
10
10
2012-03-06 16:56:09 +0000
get -r [directory]

erhält [directory] und alles darunter, wobei r für rekursiv steht. Ich habe dies gefunden, indem ich einfach help von sftp getippt habe.

4
4
4
2013-01-11 09:50:29 +0000

Wie bei cp:

scp -rp user@host:/path/to/dir dir

Dabei bleiben Zeiten und Modi der Originaldateien und -unterverzeichnisse erhalten. Dies ist besonders nützlich für das Wiederherstellen von Backups.

0
0
0
2011-09-28 08:39:19 +0000

Ich habe Java dist-Ordner im Remote-Server, wo ich folgenden Baum habe:

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

Ziel ist: Ich möchte SFTP verwenden? Und lege sie in /tmp/<>

Schritt 1. sftp remoteuser@ip

Schritt 2. cd /var/tmp

Schritt 2. lmkdir /tmp/dist; lmkdir /tmp/dist/lib

Schritt 3. lcd /tmp/dist

Schritt 4. mget *

Schritt 5. lcd /tmp/dist/lib

Schritt 6. mget *

Schritt 7. schließlich habe ich mein Ziel

$ ls
Audio.jar lib README.TXT