当我使用 tramp 打开远程目录(例如 Cx Cf /ssh:user@example:/somedirectory)时,它会为该远程目录打开一个 dired 缓冲区。问题是我想将目录和/或文件从远程服务器复制到我的本地计算机。我尝试了一些语法,例如标记所有目录或文件、按“C”并指定 local:/somelocaldir 或仅指定 /somelocaldir,但最多只能将文件复制到远程服务器上的某个文件中。
有没有办法将文件从远程 (tramp) dired 缓冲区复制到本地目录?我只使用 emacs 6 个月,所以如果有完全不同的方法,而且更好,并且仍然允许我使用 emacs(最好使用 dired),那就太好了。
需要澄清的是,我对查看、编辑、列出等远程文件不感兴趣。我只想将文件从远程服务器复制到本地计算机,效果与使用 scp 或 scp -r 相同。我只是希望我可以做到这一点而不必退出 emacs 甚至使用 eshell(但我可能会这样做,直到我在这里得到答案)。
答案1
这是一种方法。这对我而言在 emacs 23 上有效。
在 dired 模式下,导航到您想要复制的文件。
- 按下M可标记文件。
- 执行后
M-x dired-do-copy
,系统会提示您输入迷你缓冲区中的位置。 - 将位置编辑为您想要复制到的本地位置,然后按回车键。
完毕。