linux - 命令 "sudo mv home/* *"的作用是什么?

标签 linux terminal wildcard sudo mv

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

sudo mv home/* *
  • sudo : super 用户do,以root权限执行。
  • mv :移动文件或目录。
  • home/* : mv 命令的参数。它表示主目录的内容。星号*是一个通配符,它​​扩展为当前目录中按字典顺序排列的文件列表。

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

最佳答案

假设您有 /home/userA/home/userB/home/userC。进一步说,您在包含 1.txt2.txt 和目录 3.d 的目录中运行此程序。

在这种情况下,这将扩展到:

sudo mv /home/userA /home/userB /home/userC 1.txt 2.txt 3.d

也就是说,两个 glob 都被扩展 - 第一个扩展为 /home 中的条目列表,主题扩展为当前工作目录中的文件列表 - 以及结果所有内容都被移至目录 3.d 中吗?


已标记社区 Wiki,因为这是对偏离主题的问题的回答。

关于linux - 命令 "sudo mv home/* *"的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471304/

相关文章:

image - 使用 ImageMagick 使白色背景透明

sql - 在 SQL Where 语句中使用通配符

linux - svn 提交后 Hook 没有在工作副本目录中创建文件的权限

linux - bash 中的后缀别名

C 程序创建 3 个从 3 个不同文件读取的子进程

c# - 如何在C#中实现glob

Solr:对带空格的字符串使用通配符

c - 简单管道程序出现此错误 - 'Program received signal SIGPIPE, Broken pipe'

terminal - 我可以从终端使用 geany 打开文件吗

python - 子进程运行/调用不起作用