【问题标题】:copy files with folders复制带有文件夹的文件
【发布时间】:2012-04-02 23:42:16
【问题描述】:

如何在 emacs dired-mode 中复制带有文件夹的选定文件? 我面临的问题是下一个问题:当我按下“C”按钮将选定的文件与文件夹复制到另一个文件夹时,我指向 dir,然后 emacs 开始复制文件(文件复制 OK ) 但然后是所选文件夹的内容 - 实际上不是文件夹!..

初始目录内容:

准备复制:

按 C:

按回车键:

按 y:

在两个框架上按 g:

如您所见 - 目录 1 并未复制到目录 2,而只是其内容。这会在复制包含文件和文件夹的选择时出现问题。

【问题讨论】:

    标签: emacs dired


    【解决方案1】:
    (require 'ls-lisp)
    (setq ls-lisp-use-insert-directory-program nil)
    

    解决了我的问题。

    【讨论】:

      【解决方案2】:

      奇怪的行为。我同意悲惨变量,它应该和cp完全一样。

      请提供您的 emacs 版本。而且我建议你直接运行emacs -Q而不加载其他设置以找出根本原因。

      我的 Emacs (v23.3.1) 在第三张图片的步骤中按 RET 后会提示 Recursive copies of /path/to/1? (yes or no)

      【讨论】:

      • 不加载其他设置emacs -Q我有下一条消息Copy '/Users/egor/tmp/copying/1' to '/Users/egor/tmp/copying/2/1' failed: (file-error Non-regular file is a directory /Users/egor/tmp/copying/1)
      • 版本:Emacs 23.4.1 - 与上述相同。
      【解决方案3】:

      如果我标记一个名为a 的目录,其中包含文件123,并将其复制到另一个名为b 的目录,那么在我复制目录b 之后,它包含一个目录命名为a,其中包含文件123

      这似乎与cp 具有相同的行为。这不是你看到的行为吗?

      【讨论】:

      • 我使用(setq dired-dwim-target t)。将光标移动到第 1 帧中的一个文件夹,将第 2 帧设置为适当的文件夹,然后在第 1 帧中按“C”按钮 - 并且 emacs 尝试在第 2 帧中覆盖我的目标文件夹,而不是复制到。
      • 即使设置dired-dwin-target 我也得到了我之前提到的行为,包括关于递归复制的问题。我不相信你:) 你能不能在一个测试目录中尝试并列出 ls 之前和之后的输出?
      • 我检查了两次 - 在 SuSe linux 和 Mac OSX 上。当我尝试复制目录时 - emacs 想用复制的目录覆盖目标目录。
      • @egor7 不清楚您所说的“用复制的目录覆盖目标目录”是什么意思;这就是为什么我要求您编辑您的问题并包括目录列表。我很确定这是您的理解错误,但如果没有更多数据,我无能为力。
      • 在第三张截图中,emacs 询问我Copy 1 to 而不是Copy 1/ to。在下一个屏幕上,它询问我是否需要递归副本。我觉得奇怪的是它说 Copy: 1 file 以及名为 2 的文件。您是否在版本和操作系统之间共享相同的初始化文件?尝试使用emacs -q 可能是值得的。如果那没有帮助,那么我想您需要调试该功能。
      猜你喜欢
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      相关资源
      最近更新 更多