Wie kopiert man mit dired / tramp Dateien von einem Remote-Server in einen lokalen Ordner in Emacs?

9

Wenn ich mit tramp ein Remote-Verzeichnis öffne (z. B. Cx Cf / ssh: user @ example: / somedirectory), wird ein dired-Puffer für dieses Remote-Verzeichnis geöffnet. Das Problem ist, dass ich Verzeichnisse und / oder Dateien vom Remote-Server auf meinen lokalen Computer kopieren möchte. Ich habe einige Syntaxen ausprobiert, z. B. das Markieren aller Verzeichnisse oder Dateien, das Drücken von 'C' und das Angeben von local: / somelocaldir oder nur / somelocaldir, aber bestenfalls werden die Dateien in eine Datei irgendwo auf dem Remote-Server kopiert.

Gibt es eine Möglichkeit, Dateien aus einem Remote-Puffer (Tramp) in ein lokales Verzeichnis zu kopieren? Ich benutze Emacs erst seit 6 Monaten. Wenn es also einen völlig anderen Ansatz gibt, der besser ist und mich trotzdem Emacs verwenden lässt (vorzugsweise mit dired), wäre das großartig.

Zur Verdeutlichung bin ich nicht daran interessiert, entfernte Dateien anzuzeigen, zu bearbeiten, aufzulisten usw. Ich möchte nur Dateien von einem Remote-Server auf meinen lokalen Computer kopieren, mit dem gleichen Effekt, den Sie erhalten würden, wenn Sie scp oder scp -r verwendet hätten. Ich hoffe nur, dass ich das tun kann, ohne aus Emacs aussteigen oder sogar die Schale benutzen zu müssen (aber ich werde das wahrscheinlich nur tun, bis ich hier eine Antwort bekomme).

Labyrinth
quelle
In den meisten Installationen, die ich gesehen habe, C-x C-f /user@somehost:/somedirist dies ausreichend, da dies scpdie Standardaustauschmethode ist. Probieren Sie es aus und sehen Sie. Vielleicht können Sie ein paar wichtige Unebenheiten sparen.
Ephsmith
Das öffnet nur einen dired Puffer. Das Verzeichnis wird nicht wie "scp -r user @ somehost: / somedir" kopiert. würdest du.
Labyrinth
Ich verstehe Ihre Frage jetzt klarer. Der Fragentitel ließ mich denken, dass Sie Dateien direkt von kopieren wollten dired. Ich benutze ansi-termsolche Befehle, wenn ich keine Emacs hinterlassen möchte. Emacs wurde zur Anpassung entwickelt. Ich bin sicher, dass Sie irgendwann eine Antwort mit einem Lisp-Snippet bekommen werden.
Ephsmith

Antworten:

8

Hier ist eine Möglichkeit. Das funktioniert bei mir auf Emacs 23.

Navigieren Sie im Direktmodus zu der Datei, die Sie kopieren möchten.

  1. Drücken Sie M, um die Datei zu markieren.
  2. Wenn M-x dired-do-copySie dies tun, werden Sie aufgefordert, einen Speicherort im Minipuffer anzugeben.
  3. Bearbeiten Sie den Speicherort an den lokalen Speicherort, an den Sie kopieren möchten, und drücken Sie die Eingabetaste.

Erledigt.

Ephsmith
quelle