Как вы копируете файлы с удаленного сервера в локальную папку в emacs, используя dired / tramp?

3518
labyrinth

Когда я использую tramp для открытия удаленного каталога (скажем, Cx Cf / ssh: user @ example: / somedirectory), он открывает буфер для этого удаленного каталога. Проблема в том, что я хочу скопировать каталоги и / или файлы с удаленного сервера на мой локальный компьютер. Я пробовал несколько синтаксисов, таких как пометка всех каталогов или файлов, нажатие клавиши «C» и указание local: / somelocaldir или просто / somelocaldir, но в лучшем случае файлы копируются в файл где-то на удаленном сервере.

Есть ли способ скопировать файлы из удаленного буфера (tramp) в локальный каталог? Я использую emacs всего 6 месяцев, поэтому, если есть совершенно другой подход, который лучше и все же позволяет мне использовать emacs (предпочтительно w / dired), это было бы здорово.

Просто чтобы уточнить, я не заинтересован в просмотре, редактировании, распечатке и т. Д. Удаленных файлов. Я просто хочу скопировать файлы с удаленного сервера на мой локальный компьютер, с тем же эффектом, который вы получите, если бы использовали scp или scp -r. Я просто надеюсь, что смогу сделать это без необходимости выпадать из emacs или даже использовать eshell (но я, вероятно, просто буду делать это, пока не получу ответ здесь).

8
In most of the installations I've seen, `C-x C-f /user@somehost:/somedir` is sufficient since `scp` is the default exchange method. Try it and see. Maybe you can save a few key bumps. ephsmith 12 лет назад 0
Это просто открывает Dired буфер. На самом деле он не копирует каталог как «scp -r user @ somehost: / somedir». сделал бы. labyrinth 12 лет назад 0
I'm understanding your question more clearly now. The question title had me thinking you wanted to copy files directly from `dired`. I use `ansi-term` for commands like that if I don't want to leave emacs. Emacs was built for customization. I'm sure you'll get an answer with a lisp snippet at some point. ephsmith 12 лет назад 0

1 ответ на вопрос

6
ephsmith

Вот один из способов. Это работает для меня на Emacs 23.

В режиме Dired перейдите к файлу, который вы хотите скопировать.

  1. Нажмите, Mчтобы отметить файл.
  2. Сделайте, M-x dired-do-copyи вам будет предложено указать местоположение в мини-буфере.
  3. Измените местоположение на локальное местоположение, в которое вы хотите скопировать, и нажмите "Enter".

Готово.

Красивая. Большое спасибо, кузнец! labyrinth 12 лет назад 0

Похожие вопросы