mv:无法用 * 开始

mv:无法用 * 开始

我以前试过。我发誓我以前能够发出这样的命令:

mv /home/user/temp1/* /home/user/temp2

基本上,我从这里得到了这个命令:https://superuser.com/questions/273254/mo​​ve-files-and-folders-recursively-in-linux

知道它为什么告诉我

mv: cannot stat `/home/user/temp1/*': No such file or directory

答案1

我能想到发生这种情况的两个可能原因:

  1. 源目录可能不存在(或)
  2. 源目录可能为空

如果都不是,请忽略!

答案2

您需要使用$USER用户扩展您的用户名。/home/user仅当您有名为的用户时才有效。如果和存在于您的主目录中,user这将起作用temp1temp2

mv /home/$USER/temp1/* /home/$USER/temp2

答案3

我会尽力提供帮助并消除一些困惑:

  • 如果你想移动文件夹将其内容复制到另一个,请输入:

    mv ~/Scripts ~/Podcasts

  • 如果你想移动文件夹的内容,但不是文件夹本身复制到另一个文件夹,则必须输入,例如 。mv ~/Scripts/* ~/Podcasts您可以输入echo ~/Scripts/*以检查文件夹的内容

  • (如果您还需要了解globstar,这将允许您递归遍历所有目录级别,请参阅本文这个。可以使用 shopt -s globstar 启用它,但需要将其放入 .bashrc 中才能永久工作。)

tilde~/Scripts 中的 ~ 会被/home/mike/shell 自动扩展为 或您的用户名)

答案4

如果你使用 bash 并且源目录为空,则可以使用以下命令修改 shell 的默认 glob 扩展行为:

shopt -s nullglob

启用 nullglob 并使任何后续命令(如)mv在源目录为空时正常运行。请注意,这可能会导致其他命令(如)ls出现意外行为。

您可以使用以下方法再次禁用 nullglob:

shopt -u nullglob

欲了解更多信息,请查看这里这里

相关内容