发布
社区首页 >问答首页 >命令"sudo mv home/* *“做什么?

命令"sudo mv home/* *“做什么?
EN

Unix & Linux用户
提问于 2018-05-22 13:37:47
回答 2查看 10K关注 0票数 0

我知道这个命令的每个部分。

代码语言:javascript
代码运行次数:0
复制
sudo mv home/* *
  • sudo:超级用户做,用根权限执行.
  • mv:移动一个文件或目录。
  • home/*:mv命令的参数。它指示主目录的内容。星号*是一个通配符,按字典顺序扩展到当前目录中的文件列表。

下一个参数是“命运”文件夹。但是,我指定一个星号作为命运目录,如果我执行命令,文件夹将完全消失。那么,在这种情况下,*是什么呢?

EN

回答 2

Unix & Linux用户

发布于 2018-05-22 14:23:39

这都取决于外壳的球状模式扩展到什么程度。

它做了三件事之一:

  1. 如果命令末尾的*扩展为名称列表,而该列表中的最后一项是目录的名称,则该命令将home/*扩展到的所有内容以及*扩展到的所有内容(但不是最后一个目录名)移动到该目录中。与home/*匹配的文件和目录将在目标目录中的home目录旁边找到,如果home/*扩展到任何内容,并且目标目录还没有包含home目录的话。
  2. 如果命令末尾的*扩展为名称列表,而该列表中的最后一项是某个非目录的名称,则该命令将产生一个错误。
  3. 如果*根本不展开(因为当前目录是空的),那么就会产生一个错误。

如果使用GNU中的mv并且最后一个*匹配一个或多个以破折号开头的名称,这可能会根据mv将名称解释为哪些选项来更改命令的操作。

票数 1
EN

Unix & Linux用户

发布于 2018-05-22 14:37:13

当我自己运行它时,它最终在我的目标文件夹中创建了一个名为*的文件夹,并且还删除了我正在抓取的源文件。经过几次测试后,“*不是一个目录”的预期行为返回,也没有创建一个名为*的新目录。

我认为这更符合被问到的问题,因为他表示他的文件消失了,echo *返回了*

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/445353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档