【问题标题】:why command mv remove all the file? [closed]为什么命令 mv 删除所有文件? [关闭]
【发布时间】:2016-11-02 08:07:19
【问题描述】:

我想将 git.sh 复制到 /root 下的任何文件中 然后我用这个 mv git.sh /root/ 是/root下面的文件都被删除了。

你能解释一下命令之后会发生什么吗? mv git.sh /root/* 是什么意思? 你能给我正确的命令来将文件复制到 /root/ 下的任何文件吗?

【问题讨论】:

  • 不是编程问题 - 试试Super User ?
  • 复制用"cp",移动用"mv"。不要在目的地使用通配符字符 - 它没有意义。 * - 表示所有匹配项。 mv /src/* /dest/ 将源文件夹中的所有文件移动到目标文件夹。移动是复制+删除原件的几个操作。没有想象中的奇迹。 gl.

标签: linux shell


【解决方案1】:

命令mv 移动文件。当目标文件存在时,它将被替换。复制文件的正确命令是cp。它的使用方式与mv 相同。

命令mv git.sh /root/* 将用目录包含的所有名称替换通配符字符*。那么有几种情况:

  1. /root 包含多个文件或目录:命令将失败
  2. /root 包含一个文件:git.sh 将被移动并替换目录/root 中的文件
  3. /root 为空:git.sh 将作为 git.sh 移动到 /root

mv 将删除源但cp 保留它。

最好有带有文件名的目标路径,例如mv git.sh /root/git.sh。移动多个文件时,仅将目标路径用于不带文件名或通配符的目录,例如 mv dir/* /root/。当您想移动带有子目录的目录时,请添加 -R 参数。

使用man mvman cp 了解更多信息。

【讨论】:

    猜你喜欢
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2018-03-16
    • 2012-05-23
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多