Como você copia arquivos de um servidor remoto para uma pasta local no emacs usando dired / tramp?

9

Quando uso o tramp para abrir um diretório remoto (por exemplo, Cx Cf / ssh: usuário @ exemplo: / somedirectory), ele abre um buffer direcionado para esse diretório remoto. O problema é que eu quero copiar diretórios e / ou arquivos do servidor remoto para minha máquina local. Tentei algumas sintaxes, como marcar todo o diretório ou arquivos, pressionar 'C' e especificar local: / somelocaldir ou apenas / somelocaldir, mas, na melhor das hipóteses, os arquivos são copiados para um arquivo em algum lugar do servidor remoto.

Existe uma maneira de copiar arquivos de um buffer direcionado remoto (tramp) para um dir local? Eu só uso o emacs há 6 meses, por isso, se houver uma abordagem completamente diferente que seja melhor e ainda me permita usar o emacs (de preferência com direcional), isso seria ótimo.

Só para esclarecer, não estou interessado em visualizar, editar, listar etc. arquivos remotos. Eu só quero copiar arquivos de um servidor remoto para minha máquina local, com o mesmo efeito que você obteria se tivesse usado scp ou scp -r. Eu só espero que eu possa fazer isso sem ter que abandonar o emacs ou até mesmo usar o eshell (mas provavelmente vou fazer isso até obter uma resposta aqui).

labirinto
fonte
Na maioria das instalações que vi, C-x C-f /user@somehost:/somediré suficiente, pois scpé o método de troca padrão. Experimente e veja. Talvez você possa salvar alguns impactos importantes.
ephsmith
Isso apenas abre um buffer direcionado. Na verdade, ele não copia o diretório como "scp -r user @ somehost: / somedir". faria.
labyrinth
Estou entendendo sua pergunta mais claramente agora. O título da pergunta me fez pensar que você queria copiar arquivos diretamente de dired. Eu uso ansi-termpara comandos como esse se não quiser sair do emacs. O Emacs foi construído para personalização. Tenho certeza de que você receberá uma resposta com um snippet lisp em algum momento.
Ephsmith

Respostas:

8

Aqui está uma maneira. Isso funciona para mim no emacs 23.

No modo direcionado, navegue até o arquivo que você deseja copiar.

  1. Pressione Mpara marcar o arquivo.
  2. Faça um M-x dired-do-copye você será solicitado a encontrar um local no mini-buffer.
  3. Edite o local no local para o qual você deseja copiar e clique.

Feito.

ephsmith
fonte