【问题标题】:Ubuntu mv command only copied, but the source files still existUbuntu mv 命令只复制了,但源文件仍然存在
【发布时间】:2017-08-10 09:58:29
【问题描述】:

我不小心为我的源文件夹执行了没有 ./ 的 mv。 它从根文件夹复制文件,但没有删除它们。

我检查了一些从根目录复制到新文件夹中的文件,它们似乎仍在根目录和新文件夹中。 所以我认为命令没有移动,而是复制了文件。 我只是想了解这里到底发生了什么。 有什么想法吗?

这是我执行的命令: bla:my/current/folder$ mv -v /* sub_folder/

【问题讨论】:

    标签: ubuntu terminal move mv


    【解决方案1】:

    您正在从根目录复制,如您所见,您使用的是 from /*,这意味着从根文件系统到该子文件夹。对于非特权用户,您无法执行此操作,因为默认情况下您无法在主文件夹之外写入文件。

    只需删除* 之前的/,然后重试。或者在/前加一个点,例如:mv -v ./* sub_folder/

    【讨论】:

      【解决方案2】:

      我测试了这个命令,这些是我的发现。

      1. mv 有两个阶段“复制”和“删除”。

      2. 当用户具有读取权限但无法删除且没有写入权限时,mv 复制。

      3. 如果 mv 进程在其“复制”阶段终止,则不会删除任何已复制的文件。

      4. mv 在目录上复制目录中的所有文件,然后递归删除目录。但如果目标是文件列表(可能是 shell 扩展),则“删除”阶段在每个“复制”之后运行,而不是在所有列出的文件都被复制之后。

      【讨论】:

        猜你喜欢
        • 2013-09-19
        • 2011-07-04
        • 2016-08-24
        • 2013-08-27
        • 1970-01-01
        • 2018-03-16
        • 2016-06-09
        • 2014-10-27
        • 1970-01-01
        相关资源
        最近更新 更多